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')