2016-10-25 9 views
0

팬더 그룹으로 플롯하려는 대용량 데이터 세트에 대한 플롯을 만듭니다.여러 Groupedby 팬더 플롯

groupby는 두 개의 레이어입니다. 하나는 숫자 (원하는 x 축)이고 하나는 범주 형입니다 (누적 막 대형 차트에서 다른 상자를 만들고 싶습니다.) 그룹의 값을 합하면 y_axis를 만듭니다.

그래서 다음 그룹을 구성합니다. dataframe 의해.

 import pandas as pd 
    import matplotlib.pyplot as plt 
    data= pd.DataFrame() 

    data['x_axis'] = [1,1,2,2] 
    data['category'] = ['a','b','a','b'] 
    data['y_value'] = [10,15,20,30] 

    data = data.groupby(['x_axis','category']).sum() 
    data.reset_index(inplace = True) 


    data.plot.bar(x = 'x_axis', y= 'y_value', stacked = True) 
    plt.show() 

이 때문에 소망 차트가 함께 도끼 축으로 누적 막대 그래프 (1,2) 및 적층 바 A의와 B했을 다음

numeric_x_axis category sum_value 
      1   a   10 
         b   15 
      2   a   20 
         b   30 

초래 합계 값을 y 축 값으로 사용합니다.

그러나 차트에 여러 반복 x_axis 값이 나타납니다.

+1

처럼 보인다? 그 차트를 만들려고 했습니까? 그렇다면 코드를 표시하고 명시 적으로 문제를 진술하십시오. 그렇지 않다면 먼저 시도하십시오! – ImportanceOfBeingErnest

답변

0

groupby을 사용 하시겠습니까? 설명에 따르면 pivot에 더 도움이되는 것처럼 보입니다.

data = pd.DataFrame() 

data['x_axis'] = [1,1,2,2] 
data['category'] = ['a','b','a','b'] 
data['y_value'] = [10,15,20,30] 

pivoted_data = data.pivot('x_axis', 'category') 
pivoted_data.plot(kind='bar', stacked=True) 
plt.show() 

enter image description here


은 참고 피벗 dataframe 정확히 문제 나 질문은 무엇

In [2]: pivoted_data 
Out[2]: 
     y_value  
category  a b 
x_axis    
1    10 15 
2    20 30