调用 set_xticklabels 时打印标签
Posted
技术标签:
【中文标题】调用 set_xticklabels 时打印标签【英文标题】:labels are printed when set_xticklabels called 【发布时间】:2019-09-28 05:56:07 【问题描述】:问题:
在使用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)
截图
我尝试过的修复
我不知道如何修复它并用谷歌搜索但没有答案,所以我将标签分别放在一个列表中并在 set_xticklabels
中提供,但仍然没有运气。
提前致谢:)
【问题讨论】:
【参考方案1】:如果你只是使用 jupyter notebook
ax.set_xticklabels(...);
【讨论】:
【参考方案2】:这并不是一个真正的错误,而是matplotlib
的一个特征,seaborn
使用了它。它的大多数函数返回的值在某种程度上代表了它们已执行的计算。
在这种情况下,set_xticklabels
修改了 刻度标签,这些标签是用 Text
对象绘制的。返回的是那些收集在list
中的Text
对象。
您认为“打印”的标签只是您的 Jupyter 笔记本,将 list
表示为文本。
如果您不希望看到这种情况,在单元格中最后一条语句的末尾使用分号以防止其输出。
或者,您可以将结果分配给一次性变量,如下所示:
_ = winner_freq_plot.set_xticklabels(winner_freq_plot.get_xticklabels(), rotation=90)
也就是说,请注意_
通常绑定到最后一个返回值,您将通过这样做覆盖它。
另一种选择是简单地将pass
语句附加到您的代码中。由于 Jupyter 将呈现单元格中最后一条语句的返回值,而 pass
不返回任何内容,因此您不会得到任何输出。
【讨论】:
在单元格中最后一条语句的末尾使用分号以防止其输出。已经有很多问题和答案了,所以最好投票结束而不是再次回答。 @gmds 感谢您的帮助。它运作良好,ImportanceOfBeingErnest 的答案也非常简单,而且运作良好。 @ImportanceOfBeingErnest 不确定我是否遵循“最后一个单元格”。你能举个例子吗?ax.set_xticklabels(...);
以上是关于调用 set_xticklabels 时打印标签的主要内容,如果未能解决你的问题,请参考以下文章
C#调用斑马打印机打印条码标签(支持COMLPTUSBTCP连接方式和ZPLEPLCPCL指令)