>

와이즈 비즈가있다  와이즈 비즈  그쪽은 다음과 같습니다 :

pandas

그리고 다음 줄거리를 만듭니다 :

DataFrame

다음을 수행하고 싶습니다 :

1.45도 회전하여 막대가 가로가 아닌 세로가되도록합니다. 나는이 import pandas as pd temp = pd.DataFrame({'country':['A1','A1','A1','A1','A2','A2','A2','A2'], 'seg': ['S1','S2','S1','S2','S1','S2','S1','S2'], 'agegroup': ['1', '2', '2', '1','1', '2', '2', '1'], 'N' : [21,22,23,24,31,32,33,34]}) 를 시도  

하지만 다음과 같은 오류가 발생합니다 sns.factorplot(data=temp, x='seg', y='N', hue='agegroup', row='country', kind='bar', orient='v', legend=True, aspect=1)

2.숫자 sns.factorplot(data=temp, x='seg', y='N', hue='agegroup', row='country', kind='bar', orient='h', legend=True, aspect=1)  각 막대의 상단에. 이 를 따르려고했습니다.  그러나 나는 그것을 작동시킬 수 없었다

TypeError: unsupported operand type(s) for /: 'str' and 'int'

  • 답변 # 1

    플롯의 방향을 변경했지만 동일한 x, y 매개 변수를 유지했습니다. 다음과 같이 바꾸어야합니다.

    plot = sns.factorplot(data=temp, y='seg', x='N', hue='agegroup', row='country', kind='bar',
                   orient='h', legend=True, aspect=1)
    
    

    그래프는 가로로 렌더링됩니다.

    수정

    막대 위에 라벨을 표시하려면 가장 가까운 라벨을 사용하십시오.

    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    temp = pd.DataFrame({'country':['A1','A1','A1','A1','A2','A2','A2','A2'],
                         'seg':    ['S1','S2','S1','S2','S1','S2','S1','S2'],
                         'agegroup':    ['1', '2', '2', '1','1', '2', '2', '1'],
                          'N' : [21,22,23,24,31,32,33,34]})
    plot = sns.factorplot(data=temp, y='seg', x='N', hue='agegroup', row='country', kind='bar',
                       orient='h', legend=True, aspect=1)
    ax = plt.gca()
    for p in ax.patches:
        ax.text(p.get_width(), p.get_y() + p.get_height()/2., '%d' % int(p.get_width()), 
                fontsize=12, color='red', ha='right', va='center')
    
    

관련 자료

  • 이전 python - 인덱스 장고에 답변을 표시하는 방법은 무엇입니까?
  • 다음 multi level - R의 다단계 모델에서 2 차 효과 플롯