如何在Pandas/Matplotlib条形图的x轴上去掉虚线?

3

编辑:这行代码已经在Pandas中移除(https://github.com/pydata/pandas/issues/9088)。

我正在使用Pandas的plot函数绘制条形图。它总是在x轴上方显示一个奇怪的虚线。

这不是刻度线或x轴,我已经把它们都去掉了:

plt.tick_params(axis="both", which="both", bottom="off", top="off",  
        labelbottom="on", left="off", right="off", labelleft="on")  
ax.spines["bottom"].set_visible(False)

但是我仍然在x轴上看到了这条虚线!如果它不是刻度线或者x轴,那么这条线叫什么?

示例图

1个回答

4

pandas在条形图的轴上添加了一个虚线水平线。在pandas/tools/plotting.py中有一行代码,在BarPlot._post_plot_logic中(在我的版本中为第1842行):

ax.axhline(0, color='k', linestyle='--')

这似乎没有明确记录,而且显然无法停止它这样做。更糟糕的是,图表没有保留对线条的引用,因此没有清晰的方法可以安全地将其移除。如果条形图是“普通”的,则可以这样操作:

ax.get_lines()[0].set_visible(False)

这仅适用于普通条形图,因为在该图中,这是唯一的线艺术家。如果您添加其他线到图中,确定要删除哪个轴线可能会变得棘手。


谢谢!我没想到这可能是一个特定于pandas的问题。很好的发现。 - joehand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接