2017-10-26 8 views
0

data은 복수 속성이있는 항목에 날짜 - 시간 - 색인이있는 팬더 데이터 프레임입니다. 이러한 속성 중 하나는 STATUS입니다. 나는 STATUS 속성으로 세분화 된, 일일 엔트리 수의 줄거리를 만들려고했다.팬더 차트의 범례는 "None"만 표시합니다.

내 첫 번째 시도 사용 pandas.plot :

for status in data["STATUS"].unique(): 
    entries = data[data["STATUS"] == status] 
    entries.groupby(pandas.TimeGrouper("D")).size().plot(figsize=(16,4), legend=True) 

결과 :

enter image description here

가 어떻게 위의 코드를 수정해야합니다 있도록 곡선이 속한 상태 전설 쇼?

또한 이러한 시각화 (시간 간격 별 그룹화, 항목 수 계산, 항목 속성 별 분류)를 실현하는 데있어 다른 접근 방식을 제안하십시오.

+1

[팬다 데이터 프레임으로 여러 줄 표시] (https://stackoverflow.com/questions/29233283/plotting-multiple-lines-with-pandas-dataframe) 복제본 – ASGM

+0

보유중인 열은 무엇입니까? 어쩌면 데이터의 머리 및/또는 꼬리를 보여줄 수 있습니까? –

+0

'data [ "STATUS"]. unique()'의 결과는 무엇입니까? –

답변

0

나는 코드로 변경 한 다음에 당신은 당신이 원하는 것을 얻을 것이라고 믿는다 : 무슨 일이 있었는지

fig, ax = plt.subplots()  
for status in data["STATUS"].unique(): 
     entries = data[data["STATUS"] == status] 
     dfPlot = pandas.DataFrame(entries.groupby(pandas.TimeGrouper("D")).size()) 
     dfPlot.columns=[status] 
     dfPlot.plot(ax=ax, figsize=(16,4), legend=True) 

size 함수의 출력이 당신의 열의없는 이름을 가진 Series 유형을 제공한다는 것입니다. 따라서 Series에서 Dataframe을 만들고 열 이름을 변경하는 것이 트릭입니다.

+0

그 것만 반복마다 하나의 음모를 제공합니다 - 단일 음모로 결합하는 방법을 알아야합니다. – clstaudt

+1

EDITED : plt.subplots가 트릭을 수행합니다. – clstaudt