在seaborn boxplot中旋转xtick标签?

Rac*_*hel 22 matplotlib python-3.x pandas seaborn

我有一个问题与2014年的问题基本相同(见这里).但是,我的脚本仍然会抛出错误.

这就是我所做的:我有一个带有几列的pandas数据帧.我绘制了一个简单的boxplot比较.

g = sns.boxplot(x='categories', y='oxygen', hue='target', data=df)
g.set_xticklabels(rotation=30)
Run Code Online (Sandbox Code Playgroud)

该图如下所示:

在此输入图像描述

我想将x标签旋转30度.因此我使用g.set_xticklabels(rotation=30).但是,我收到以下错误:

set_xticklabels() missing 1 required positional argument: 'labels'

我不知道如何将matplotlib labels论证传递给海关sns.boxplot.有任何想法吗?

Imp*_*est 37

您链接的问题使用了factorplot.factorplot返回自己的类,该类具有一个名为的方法set_xticklabels(rotation).这set_xticklabels与matplotlib 的方法不同Axes.

在链接问题的答案中,您还可以使用其他选项

ax = sns.boxplot(x='categories', y='oxygen', hue='target', data=df)
ax.set_xticklabels(ax.get_xticklabels(),rotation=30)
Run Code Online (Sandbox Code Playgroud)

要么

ax = sns.boxplot(x='categories', y='oxygen', hue='target', data=df)
plt.setp(ax.get_xticklabels(), rotation=45)
Run Code Online (Sandbox Code Playgroud)

  • 可能我没说清楚。当我使用它时,第二个答案有效,第一个使标签消失。 (3认同)
  • @dekio 把;在该行的末尾 (3认同)
  • 嗨,很棒的提示@ImportanceOfBeingErnest,非常感谢!你知道为什么我总是在图表下方看到一个大文字吗?我的箱线图没问题,输出完全没有问题,但是,我得到了几行标签的原因,例如 [Text(0, 0, '1984'), Text(0, 0, '1985'), (2认同)

小智 5

如果您不需要重置标签:ax.tick_params(axis='x', labelrotation=90)