1

我正在绘制一些直方图并且遇到问题histtype=stepfilled。填充曲线显然有一些错误的锚点:

带有 histt​​ype='stepfilled' 故障的 matplotlib 直方图

还是我缺少一些设置?

代码非常简单:

ax2 = fig.add_subplot(212)
ax2.hist(self._neutrinoEnergies, histtype='stepfilled', color=colors.pop())
ax2.set_title(r'Neutrino Energies')
ax2.set_xlabel(r'$E_\nu$')
ax2.set_ylabel('count')
ax2.set_yscale('log')

顺便提一句。如果我设置histtype='bar',则根本没有条(尽管如果我不将 yscale 设置为 ,它会起作用'log'):

histt​​ype='bar' 的 matplotlib 直方图不显示条形图

4

1 回答 1

5

Matplotlib 试图一直填充到 0,但 0 总是在对数刻度上偏离轴(因为 log(0) 是负无穷大)。

修复方法是调用ax2.set_yscale('log', nonposy='clip'). 1.2.1 中的更改是,当您调用hist(..., log=True). 如果您在执行过程中手动设置比例,则始终需要nonposy='clip'.

于 2013-05-07T22:28:20.937 回答