Мои данные, как показано ниже:Как добавить метки данных поверх всех баров в поисковых барплотах?
data=io.StringIO("""x1,x2,x3
1,A,0.42
1,B,0.62
2,A,0.24
2,B,0.58
""")
df = pd.read_csv(data, sep=",")
Я пытался сделать Сиборн barplot с ярлыком данных над каждой строке:
ax = sns.barplot (data=df, x='x2', y='x3', hue='x1',
palette=sns.xkcd_palette(['blue', 'red']))
ax.legend(loc='center right', bbox_to_anchor=(1.03, 0.9),
ncol=1, fancybox=True, shadow=True)
barwidth = [0.4,0.4]
ax.set_ylim(0, 0.7)
label_ = df.x3
for bar,newwidth, label in zip(ax.patches,barwidth, label_):
x = bar.get_x()
width = bar.get_width()
height = bar.get_height()
centre = x+width/2.
bar.set_x(centre-newwidth/2.)
bar.set_width(newwidth)
ax.text(x+width/2.,
height + 0.03,
'{0:4.2f}'.format(label),
ha="center")
Однако, это то, что я получил. Кажется, что морские прогулки обрабатывают бары как два патча вместо 4, по одному для каждой группы. Я не могу найти способ решить проблему. Помощь очень ценится. Заранее спасибо.
Большое вам спасибо! @Майкл – zesla