如何摆脱Pandas / Matplotlib条形图的x轴上的虚线?

时间:2014-12-15 19:35:41

标签: python matplotlib pandas plot

编辑:此行已在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轴,那么该线甚至会被调用?

example plot

1 个答案:

答案 0 :(得分:4)

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

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

这似乎没有明确记录,显然没有办法阻止它这样做。更糟糕的是,情节没有保留对线的任何引用,因此没有明确的方法可以安全地删除它。如果条形图是“普通的”,那么这将起作用:

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

这只能起作用,因为在普通的条形图中,这是情节中唯一的线条艺术家。如果你做了其他任何为绘图添加其他线条的东西,那么确定哪一条是你要删除的轴线可能会很棘手。