2016-06-10 14 views
2

에서 여러 플롯을 만들어 다음과 같은 팬더의 dataframe이 : 나는 스미스와 피터에 대해 별도의 플롯을 만들려고하고팬더 dataframe

data ={'Studentid'['SSmith','SSmith','SSmith','SSmith','PPeters','PPeters','PPeters'], 
    'LastName':['Smith','Smith','Smith','Smith','Peters','Peters','Peters'], 
    'FirstName':['S','S','S','S','P','P','P'], 
    'year':[2012,2013,2014,2014,2015,2015,2015], 
    'month':[11,7,1,2,10,11,12], 
    'BookLevel':[1.4,1.5,2.5,3.8,3.0,3.8,3.7], 
    'BookProgress':[0.0, 0.1, 1.1, 2.4, 0.0, 0.8, 0.7], 
    'DateProgress':[0.0, .68, 1.21, 1.29, .04, .12, .18], 
    'PlusMinus':[0.0, -.58, -.11, 1.11, -.04, .68, .52]} 

합니다. 나는 많은 대안을 시도하고 내가 온 가장 가까운 다음과 같은 코드입니다 :

x=[(df['DateProgress'])] 
y=[(df['BookProgress'])] 

for i, group in df.groupby("Studentid"): 
    plt.figure() 

    plt.scatter(x,y) 

    plt.plot(range(4)) 
    plt.xlim(-.5, 3.5) 
    plt.ylim(-.5, 3.5) 
    plt.xlabel('DateProgress') 
    plt.ylabel('BookProgress') 

    plt.gca().set_aspect('equal', adjustable='box') 


    plt.show() 

결과는 두 개의 플롯이다 그러나이 동일하고 모두 스미스와 피터에 대한 모든 데이터 요소가 포함되어 있습니다. 나는 그들이 내가 원하는 플롯이 아니더라도 2 개의 플롯을 얻을 수 있다는 것에 놀랐다. 내가 찾고있는 것을 얻는 방법에 대한 단서가 없다 ... 그것은 4 데이터 포인트를 가진 스미스와 3 데이터 포인트를 가진 Peters를위한 또 다른 플롯이다. 도움이 필요합니다

+0

감사! 나는 3 일을 넣고 그렇게 가까이 왔을 때 다소 겸손 해졌다. 당신은 거의 즉시 대답했다. –

+0

특별한 호의? 어떻게 플롯에 표시된 Studentid로 각 플롯에 라벨을 붙일 수 있습니까? 첫 번째 시도가 작동하지 않습니다 –

+0

편집을 참조하십시오. 문제가 없습니다. – Phlya

답변

4

테스트하지 않았습니다. 당신은 매우 가까웠습니다. 각 그룹에 대해 xy을 새로 정의하면됩니다.

--piRSquared (Now Tested) ... 작동합니다. http://pandas.pydata.org/pandas-docs/stable/visualization.html

:

for i, group in df.groupby("Studentid"): 
    plt.figure() 
    x=group['DateProgress'] 
    y=group['BookProgress'] 
    plt.scatter(x,y) 

    plt.plot(range(4)) 
    plt.xlim(-.5, 3.5) 
    plt.ylim(-.5, 3.5) 
    plt.xlabel('DateProgress') 
    plt.ylabel('BookProgress') 

    plt.gca().set_aspect('equal', adjustable='box') 

    plt.title(i) #Label each plot 

    plt.show() 

enter image description here

enter image description here 난 그냥 당신이 다른 색상의 같은 축에서 두 플롯을 갖는 확인을 경우, 당신은 훨씬 더 우아한 방법을 사용할 수 있다는 것을 언급 할

+0

@piRSquared 테스트를 해 주셔서 감사합니다. – Phlya

+0

NP, 기꺼이 도와 드리겠습니다. – piRSquared