箱内高度不均匀的直方图

时间:2016-09-15 04:05:22

标签: python matplotlib

为什么我的直方图看起来像这样?我使用以下代码绘制它:

import matplotlib.pyplot as plt

n, bins, patches = plt.hist(data, 25)
plt.show()

其中data包含大约500,000个排序点。每个垃圾箱不应该在顶部平滑吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

我怀疑您的数据可能不是一个平面列表,但是,例如,列表列表或类似结构。在这种情况下,hist将按子列表进行bin。此脚本演示了不同之处:

import random
from matplotlib import pyplot as plt

data = [[random.randint(0, x) for x in range(20)] for y in range(100)]

plt.subplot(211)
# structured
plt.hist(data, 25)

plt.subplot(212)
# flattened
plt.hist([i for l in data for i in l], 25)

plt.show()

你可能不得不使用某种类似的"展平"关于你的数据。

答案 1 :(得分:0)

我认为this example from the matplotlib gallery会显示您想要的情节。因此,您应该使用histtype="stepfilled"histtype="bar"