在调用set_xticklabels时打印标签

时间:2019-05-10 10:23:36

标签: python pandas jupyter-notebook seaborn

问题:

使用set_xticklabels设置x轴标签的旋转时,所有标签都将被打印。

代码

winner_freq = pd.DataFrame(player_match.winner.value_counts().reset_index())
winner_freq_plot = sns.barplot(x='index', y='winner', data=winner_freq)
winner_freq_plot.set_xticklabels(winner_freq_plot.get_xticklabels(), rotation=90)

屏幕截图

enter image description here

我尝试解决的问题

我不知道如何解决它并用谷歌搜索,但没有答案,因此我将标签分别放在列表中,并放入set_xticklabels内,但还是没有运气。

预先感谢:)

2 个答案:

答案 0 :(得分:1)

这实际上不是错误,而是matplotlib使用的seaborn的特征。它的大多数函数都以某种方式返回表示它们已执行的计算的值。

在这种情况下,set_xticklabels修改刻度标签,该标签是用Text对象绘制的。返回的是收集在Text中的list个对象。

您认为被“打印”的标签只是Jupyter笔记本,将list表示为文本。

如果您不希望看到此结果,可以将结果分配给一个一次性变量,如下所示:

_ = winner_freq_plot.set_xticklabels(winner_freq_plot.get_xticklabels(), rotation=90)

也就是说,请注意_通常绑定到最后一个返回值,您将通过这样做来覆盖它。

一种替代方法是简单地在代码中附加一个pass语句。由于Jupyter将呈现单元格中最后一条语句的返回值,而pass不返回任何内容,因此您将不会获得任何输出。

答案 1 :(得分:1)

如果你正在使用 jupyter notebook

ax.set_xticklabels(...); <- 行以分号结束。