在seaborn boxplot中旋转xtick标签?

Posted

技术标签:

【中文标题】在seaborn boxplot中旋转xtick标签?【英文标题】:Rotate xtick labels in seaborn boxplot? 【发布时间】:2017-12-10 18:27:15 【问题描述】:

我的问题与 2014 年的问题基本相同(请参阅 here)。但是,我的脚本仍然会抛出错误。

这就是我所做的:我有一个带有几列的 pandas 数据框。我绘制了一个简单的箱线图比较。

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

图表如下所示:

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

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

我不知道如何将 matplotlib labels 参数传递给 seaborns sns.boxplot。有任何想法吗?

【问题讨论】:

【参考方案1】:

您链接到的问题使用factorplot。因子图返回它自己的类,该类有一个名为set_xticklabels(rotation) 的方法。这与 matplotlib Axesset_xticklabels 方法不同。

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

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

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

【讨论】:

谢谢,您知道为什么myplot.set_xticklabels(myplot.get_xticklabels(), rotation=45) 不起作用但plt.setp(myplot.get_xticklabels(), rotation=45) 起作用吗? 也许我不清楚。第二个答案在我使用时有效,第一个使标签消失。 两种解决方案在我使用时都有效。我想您遇到的问题不在此处显示的两行范围内。 嗨,很棒的提示@ImportanceOfBeingErnest,非常感谢!你知道为什么我总是在图表下方看到一个大文本吗?我的箱线图没问题,输出完全没有问题,但是,我得到了几行标签的原因,例如 [Text(0, 0, '1984'), Text(0, 0, '1985'),跨度> @dekio put ;在行尾【参考方案2】:

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

【讨论】:

以上是关于在seaborn boxplot中旋转xtick标签?的主要内容,如果未能解决你的问题,请参考以下文章

有xticks在Pandas的Seaborn regplot中显示月份

如何在 seaborn distplot 的 bin 中心标记 xticks?

如何在 seaborn 的 facetgrid 中设置可读的 xticks?

调整 seaborn.boxplot

在seaborn boxplot中防止科学记数法

Seaborn 热图未显示所有 xticks 和 yticks