旋转seaborn barplot的刻度标签

Lau*_*nmc 32 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)
Run Code Online (Sandbox Code Playgroud)

此时我可以看到图像,但是在我设置xticklabel之后,我再也看不到图像只是一个对象引用了.(我会张贴图片,但我没有足够的声誉:()

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

<matplotlib.axes._subplots.AxesSubplot at 0x3971a6a0>
Run Code Online (Sandbox Code Playgroud)

这里发布了一个类似的问题:在seaborn factorplot中旋转标签文本, 但解决方案无效.

CT *_*Zhu 39

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

for item in by_school.get_xticklabels():
    item.set_rotation(45)
Run Code Online (Sandbox Code Playgroud)

barplot返回一个matplotlib.axes对象(从seaborn0.6.0开始),因此你必须以这种方式旋转标签.在其他情况下,当方法返回FacetGrid对象时,请参阅seaborn factorplot中的旋转标签文本

  • 也可以做`plt.setp(by_school.get_xticklabels(),rotation = 45)`来保存自己的一行代码:) (8认同)
  • 如果您将 matplotlib.pyplot 作为 plt 导入,您也可以使用 `plt.xticks(rotation='vertical')`。 (4认同)

wor*_*ise 34

你可以像这样旋转seaborn xticks:

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

plt.xticks(rotation=70)
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)


Ami*_*ngh 23

使用以下代码语句:

by_school.set_xticklabels(by_school.get_xticklabels(), rotation=90)
Run Code Online (Sandbox Code Playgroud)

  • 还要添加“horizo​​ntalalignment='right'”,以便标签与刻度线匹配。 (3认同)