Python 如何在seaborn条形图中添加标签

Python 如何在seaborn条形图中添加标签,python,python-3.x,pandas,seaborn,Python,Python 3.x,Pandas,Seaborn,我有一个熊猫数据框,看起来像这样: 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

我有一个熊猫数据框,看起来像这样:

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)
我想做以下工作:

一,。将其旋转45度,使杆水平而不是垂直。我试过这个sns.factorplotdata=temp,x='seg',y='N',hue='agegroup',row='country',kind='bar', orient='h',legend=True,aspect=1

但我得到以下错误类型错误:/:'str'和'int'的不支持的操作数类型

二,。把数字N放在每个条的顶部。我试着跟着
但我无法使其工作

您更改了绘图的方向,但保留了相同的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')