Matplotlib / Pandas直方图错误对齐

时间:2014-02-16 10:54:15

标签: matplotlib pandas ipython-notebook

# A histogram
n = np.random.randn(100000)
fig, axes = plt.subplots(1, 2, figsize=(12,4))

axes[0].hist(n)
axes[0].set_title("Default histogram")
axes[0].set_xlim((min(n), max(n)))

axes[1].hist(n, cumulative=True, bins=50)
axes[1].set_title("Cumulative detailed histogram")
axes[1].set_xlim((min(n), max(n)));

ipython notebook histogram

这是来自ipython笔记本here In[41]

直方图条似乎与网格没有正确对齐(参见第一个子图)。这就是我在自己的情节中面临的同样问题。

有人可以解释原因吗?

2 个答案:

答案 0 :(得分:2)

在matplotlib hist中查找align选项。您可以左对齐,右对齐或居中对齐。默认情况下,您的垃圾箱不会居中,这就是您看到左对齐垃圾箱的原因。这在matplotlib hist文档中详细说明:http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist

答案 1 :(得分:1)

如果你的高斯从-2647扩展到+1324怎么办呢?你预计会有3971个垃圾箱怎么办?也许太多了。 39?然后你离开了0.71。 40岁左右?差价0.29。

直方图的工作方式是你可以设置bins=参数(箱数,默认值为10)。在右边的图表中,比例似乎从大约-4.5到+4.5,这使得9的跨度除以10个箱子,得到0.9 /箱。

同样,当你进行直方图时,你并不明白“如何”将事物分类并代表它。 如果你有一个从0到1的bin,是0 < x <= 10 <= x < 1?如果你只有整数值,我怀疑你也会更喜欢以整数值为中心的箱子?对吗?

因此,histogram是一种快速方法,可以让您深入了解数据,但不会阻止您设置其参数以按您喜欢的方式表示数据。

This博客文章对直方图绘制中参数的影响进行了很好的演示,并解释了一些替代的绘图方法。