在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 Axes
的 set_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?