【问题标题】:Matplotlib/Pylab - part of plot disappears after setting log scaleMatplotlib/Pylab - 设置对数比例后,部分情节消失
【发布时间】:2013-07-13 23:55:23
【问题描述】:

我有一个小代码用这个代码生成下面的图片:

代码 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 的输出:

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

代码 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 个。任何帮助将不胜感激。我正在使用最新版本的 Enthought Canopy 用于学术用途。 E.

更新:我确实找到了一个类似的问题 here,不过,旧的、死的、没有答案的。

【问题讨论】:

    标签: python graph matplotlib plot


    【解决方案1】:

    在绘图结束时发出plt.yscale('symlog')。有关'symlog' 的描述,请参阅here

    【讨论】:

      【解决方案2】:

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

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

      在这种情况下,请注意对情节的正确解释。

      【讨论】:

      • 好主意。我会支持你,但我没有代表,哈哈。
      • 如果你打算这样做,那么这真的不是你应该这样做的......你应该使用nonposy 参数。请参阅this answer 了解更多信息。
      【解决方案3】:

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

      Log(0) = -无穷大。

      绘图会让你的图表看起来很垃圾......

      【讨论】:

      • 谢谢。我什至没有想到这一点,它是如此明显! :)
      猜你喜欢
      • 2015-09-26
      • 2017-09-03
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 2010-11-06
      • 2023-04-01
      相关资源
      最近更新 更多