旋转 seaborn 条形图的刻度标签

Rotate tick labels for seaborn barplot

我正在尝试显示带有旋转 x 轴标签的图表,但图表未显示。

import seaborn as sns
%matplotlib inline

yellow='#FFB11E'
by_school=sns.barplot(x ='Organization Name',y ='Score',data = combined.sort('Organization Name'),color=yellow,ci=None)

此时我可以看到图像,但设置 xticklabel 后,我不再看到图像,只有对象引用。 (我会 post 图片,但我的声誉不够 :()

by_school.set_xticklabels('Organization Name',rotation=45)

<matplotlib.axes._subplots.AxesSubplot at 0x3971a6a0>

此处 post 编辑了一个类似的问题:Rotate label text in seaborn factorplot 但解决方案无效。

您需要不同的方法调用,即每个 ticklable 调用 .set_rotation。 由于您已经有了刻度标签,只需更改它们的旋转:

for item in by_school.get_xticklabels():
    item.set_rotation(45)

barplot returns 一个 matplotlib.axes 对象(从 seaborn 0.6.0 开始),因此您必须以这种方式旋转标签。其他情况,当方法returns一个FacetGrid对象时,参考Rotate label text in seaborn factorplot

如果你来这里是为了轮换标签seaborn.heatmap, the following should work (based on @Aman's answer at Rotate label text in seaborn factorplot)

pandas_frame = pd.DataFrame(data, index=names, columns=names)
heatmap = seaborn.heatmap(pandas_frame)
loc, labels = plt.xticks()
heatmap.set_xticklabels(labels, rotation=45)
heatmap.set_yticklabels(labels[::-1], rotation=45) # reversed order for y

使用以下代码语句:

by_school.set_xticklabels(by_school.get_xticklabels(), 
                          rotation=90, 
                          horizontalalignment='right')

这对我有用:

g.fig.autofmt_xdate()

您可以像这样旋转 seaborn xticks:

sns.barplot(x='Organization Name', y='Score', data=df)

plt.xticks(rotation=70)
plt.tight_layout()