【发布时间】:2014-02-06 18:19:12
【问题描述】:
我有一组具有两个属性的 N 个对象:x 和 y。 我想使用 hist() 在 MATPLOTLIB 中用直方图描述 x 的分布。很容易。现在,我想用一种颜色对直方图的每个条形进行颜色编码,该颜色表示该集合中 y 的平均值,并带有一个颜色图。是否有捷径可寻?这里,x 和 y 都是 N-d numpy 数组。谢谢!
fig = plt.figure()
n, bins, patches = plt.hist(x, 100, normed=1, histtype='stepfilled')
plt.setp(patches, 'facecolor', 'g', 'alpha', 0.1)
plt.xlabel('x')
plt.ylabel('Normalized frequency')
plt.show()
【问题讨论】:
-
您正在捕获返回的
patches对象,您不能根据bins对其进行迭代并设置您认为合适的颜色吗? -
所以我必须手动检查 N 个对象中的每一个,它们在哪个 bin 中,记录那里的 y,最后取平均 y 来确定颜色?
-
类似的东西;首先,我可能会将 x 和 y 组合成一个数组,然后按 x 对其进行排序。之后,遍历数据,对 y 求和,然后在看到 x 越过 bin 边界时进行平均和着色。
-
这实际上是一个比
matplotlib问题更有趣的numpy问题
标签: python numpy matplotlib