【发布时间】:2015-04-22 07:53:34
【问题描述】:
绘制直方图时,会有一个不应存在的额外条形图。尽管hist 输出报告的频率为零,但第一个 bin 中的条形高度不为零。
这是一个最小的例子:
import numpy as np
import matplotlib.pyplot as plt
import random
t=np.array([random.random() for _ in range(10000)])
bins=np.linspace(-0.1, 1.1, 101)
plt.hist(t, bins)
plt.show()
在第一个 bin 中生成了一个条形,可以在此图的左边缘和直方图的主要部分之间看到它(在缩略图上很难看到,放大图像):
打印出print("%2.32f" %plt.hist(t1, bins)[0][1]) 会给出精确为零的值。
【问题讨论】:
-
有趣!我看到一个非常微妙的“条”,它似乎只由条边组成,没有高度,也没有填充。如果我使用
plt.bar绘制相同的直方图 (counts, edges = np.histogram(t, bins); plt.bar(edges[:-1], counts, np.diff(edges))),则它不存在。你能确认一下吗? -
@ali_m 很好的观察,它实际上只是一条线,即条形图没有填充或高度。
plt.bar似乎没有产生它,所以谢谢你的建议。
标签: python numpy matplotlib histogram