【问题标题】:sns: Labels disappear/clear after calling set_xticklabelssns:调用 set_xticklabels 后标签消失/清除
【发布时间】:2020-02-01 10:09:07
【问题描述】:

我使用下面的代码打印一个 seaborn 线图。

timeplot = sns.lineplot(x='YearMonth', y='count', data=delivered_by_month)

这工作正常,但 x 轴标签重叠,所以我想旋转它们。

所以我在上面的行之后添加了一个这样的附加行。

timeplot.set_xticklabels(labels=timeplot.get_xticklabels(), rotation=90, ha="right")

现在 X 轴标签消失了。 我确认通过运行以下代码清除了所有标签。

for m in timeplot.get_xticklabels():
  print (m)

为此,我得到如下输出。

Text(0, 0, '')
Text(1, 0, '')
Text(2, 0, '')
Text(3, 0, '')
Text(4, 0, '')

如果我在旋转代码之前打印标签,我会得到如下正确的输出。

Text(0, 0, '2010-10')
Text(1, 0, '2010-11')
Text(2, 0, '2010-12')
Text(3, 0, '2010-2')
Text(4, 0, '2010-3')

任何输入都会有所帮助。

【问题讨论】:

标签: python python-3.x seaborn


【解决方案1】:

我刚刚遇到了同样的问题,这对我有帮助:https://stackoverflow.com/a/41131528/14396570

显然,timeplot.get_xticklabels() 在绘制图表之前是空的,因此您必须在设置 x 刻度标签之前调用 plt.draw(),如下所示:

timeplot = sns.lineplot(x='YearMonth', y='count', data=delivered_by_month)
plt.draw()
timeplot.set_xticklabels(labels=timeplot.get_xticklabels(), rotation=90, ha="right")

【讨论】:

    猜你喜欢
    • 2019-09-28
    • 2012-04-19
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 2018-01-07
    • 2020-10-02
    • 1970-01-01
    • 2012-10-14
    相关资源
    最近更新 更多