Python Matplotlib/Pylab-设置对数比例后,部分绘图消失

Python Matplotlib/Pylab-设置对数比例后,部分绘图消失,python,graph,matplotlib,plot,Python,Graph,Matplotlib,Plot,我有一个小代码,使用此代码生成以下图片: 代码1: hist, rhist = np.histogram(r, bins=40, range=(0, 0.25)) hist = -hist/np.trapz(rhist[:-1],hist) plt.plot(rhist[:-1], hist) 代码1的输出: 然后,我尝试将绘图设置为对数轴,这样我可以更清楚地识别小峰值。这就是结果 代码2: hist, rhist = np.histogram(r, bins=40, range=(0, 0

我有一个小代码,使用此代码生成以下图片:

代码1:

hist, rhist = np.histogram(r, bins=40, range=(0, 0.25))
hist = -hist/np.trapz(rhist[:-1],hist)
plt.plot(rhist[:-1], hist)
代码1的输出:

然后,我尝试将绘图设置为对数轴,这样我可以更清楚地识别小峰值。这就是结果

代码2:

hist, rhist = np.histogram(r, bins=40, range=(0, 0.25))
hist = -hist/np.trapz(rhist[:-1],hist)
plt.semilogy(rhist[:-1], hist)
代码2的输出:

正如你所见,我的部分情节消失了。有40个垃圾箱,但我只能数新地块中的大约15个。任何帮助都将不胜感激。我正在使用最新版本的Enthough Corporation用于学术用途。E


更新:我确实发现了一个类似的问题,老的,死的,没有答案。

我很确定它没有绘制这些值,因为它们是零

Log(0)=-无穷大


绘图将使图形看起来非常垃圾…

在对数刻度中“显示”零的常见视觉技巧是使用非常小的值:

plt.semilogy(rhist[:-1], hist+1e-6)

在这种情况下,应注意正确解释绘图。

在绘图结束时发布
plt.yscale('symlog')
。有关
'symlog'

的说明,请参阅,谢谢。我甚至没有想到这一点,这是显而易见的!:)好主意。我会投票给你,但我没有代表权,哈哈。如果你要这么做,那么你真的不应该这么做。。。您应该使用
nonposy
参数。有关更多信息,请参阅。