【问题标题】:How to *Rotate* labels in a Seaborn PairGrid?如何*旋转* Seaborn PairGrid 中的标签?
【发布时间】:2020-03-25 04:40:52
【问题描述】:

我的数据框中的列名称很长,所以当我制作一对图时,标签会相互重叠。我想将我的标签旋转 90 度,这样它们就不会发生碰撞。我尝试查找在线和文档,但找不到解决方案。这是我写的内容和错误消息:

plt.figure(figsize=(10,10))
g = sn.pairplot(df, kind="scatter")
g.set_xticklabels(g.get_xticklabels(), rotation=90)
g.set_yticklabels(g.get_yticklabels(), rotation=90)
AttributeError: 'PairGrid' object has no attribute 'set_xticklabels'

如何在 Seaborn PairGrid 中旋转标签(x 和 y)?

注意:抱歉,我的wifi无法上传图片供参考。

【问题讨论】:

    标签: python label seaborn


    【解决方案1】:

    感谢威廉的回答,我现在知道要寻找什么来解决我的问题了!

    以下是我的做法。

    g = sn.pairplot(dfsub.sample(50), kind="scatter", hue=target)
    for ax in g.axes.flatten():
        # rotate x axis labels
        ax.set_xlabel(ax.get_xlabel(), rotation = 90)
        # rotate y axis labels
        ax.set_ylabel(ax.get_ylabel(), rotation = 0)
        # set y labels alignment
        ax.yaxis.get_label().set_horizontalalignment('right')
    

    【讨论】:

      【解决方案2】:

      您可以使用PairPlot 返回的PairGrid 对象的axes 成员直接遍历坐标区。像这样的

      for ax in g.axes.flatten():
          ax.tick_params(rotation = 90)
      

      应该做的伎俩

      【讨论】:

      • 谢谢@William!遍历 g.axes.flatten() 正是我想要的!我实际上正在使用标签而不是 tick_params,所以我编辑了我需要的内容并为这个问题添加了一个新答案。
      • @TechTana 我的错误,您在问题中使用 get_xticklabels()get_yticklabels() 让我认为您想旋转刻度标签而不是轴标签 - 而 tick_params() 是另一种方式那。很高兴您能使用 g.axes.flatten()
      【解决方案3】:

      添加到@techtana 的答案。如果在绘制pairplot时设置cornor=True,则需要跳过axes of NoneType

      g = sns.pairplot(df, diag_kind='kde', corner=True)
      for ax in g.axes.flatten():
          if ax:
              # rotate x axis labels
              ax.set_xlabel(ax.get_xlabel(), rotation = -30)
              # rotate y axis labels
              ax.set_ylabel(ax.get_ylabel(), rotation = 0)
              # set y labels alignment
              ax.yaxis.get_label().set_horizontalalignment('right')
      

      【讨论】:

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