【问题标题】:Rotate xtick labels in seaborn boxplot?在seaborn boxplot中旋转xtick标签?
【发布时间】: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。有任何想法吗?

【问题讨论】:

    标签: python-3.x pandas matplotlib seaborn


    【解决方案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)

    【讨论】:

      猜你喜欢
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 2014-12-19
      • 2021-09-24
      • 1970-01-01
      • 2015-10-29
      相关资源
      最近更新 更多