旋转seaborn barplot的刻度标签

时间:2015-08-06 15:04:17

标签: python matplotlib seaborn

我正在尝试显示带有旋转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之后,我再也看不到图像只是一个对象引用了。 (我会张贴图片,但我没有足够的声誉:()

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

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

此处发布了类似的问题:Rotate label text in seaborn factorplot但解决方案无效。

5 个答案:

答案 0 :(得分:31)

您需要一个不同的方法调用,即每.set_rotationticklable。 由于您已经有了ticklabels,只需更改它们的旋转:

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

barplot会返回matplotlib.axes个对象(截至seaborn 0.6.0),因此您必须以这种方式旋转标签。在其他情况下,当方法返回FacetGrid个对象时,请参阅Rotate label text in seaborn factorplot

答案 1 :(得分:19)

您可以像这样旋转seatic xticks:

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

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

答案 2 :(得分:17)

使用以下代码声明:

by_school.set_xticklabels(by_school.get_xticklabels(), rotation=90)

答案 3 :(得分:1)

如果您来这里旋转seaborn.heatmap的标签,则以下内容应该有效(基于@Aman's answer Rotate label text in seaborn factorplot的<{3}}

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

答案 4 :(得分:-1)

这对我有用:

g.fig.autofmt_xdate()