在0处将x轴添加到带有负条的pyplot直方图

时间:2013-08-11 21:05:02

标签: python matplotlib

在使用以下代码生成的直方图中,零级别没有x轴

import matplotlib.pyplot as plt
plt.bar(left=[0,4,5],height=[-100,10,110],color=['red','green','green'],width=0.1)
plt.show()

resulting picture

如何把它放在那里?

2 个答案:

答案 0 :(得分:4)

我倾向于使用spines来使x轴居中:

import matplotlib.pyplot as plt

fig = plt.figure(facecolor='white')
ax = fig.add_subplot(1,1,1)
ax.bar(left=[0,4,5],height=[-100,10,110],color=['red','green','green'],width=0.1)
ax.grid(b=True)
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')

plt.show()

这将产生下一个情节:

enter image description here

答案 1 :(得分:2)

默认情况下,matplotlib不认为y=0行很重要。您可以通过plt.grid()等电话打开网格。

经常使用in the matplotlib.pylab docs的替代方法是将水平线设置为0.这可以通过

完成
plt.axhline(0, color='black', lw=2)