【发布时间】:2018-07-29 17:07:07
【问题描述】:
我已经在这个论坛上浏览了数十个关于热图的答案,但我仍然遇到问题,所以我想我会问自己。请记住,直到一个月前我才知道 Python 是什么。
所以,我有一个包含三列数据的大文件。前两个是标准的 x-y 坐标。对于每个点,都有第三个变量 z,我想将其用作权重来构建某种热图。
我见过几种方法,例如使用网格网格或更改数组大小,但我认为问题是我的数组不是规则的或矩形的。只是x-y平面上的一堆乱七八糟的点,彼此之间的间隔不均匀,每个点都有一个z值。
这只是我电子表格中数据的一小部分:
x y z
392 616 0.5
416 614 1
497 603 3
533 598 3.5
383 589 0.5
574 574 4
...
我尝试了几种方法,例如重塑数组,但我总是遇到某种错误。如何将这些数据绘制为热图,每个点的权重由 z 给出?谢谢。
我知道,由于数据点不是定期间隔开的,因此热图可能会为零,但我可以稍后通过我想出的方法推断它们的权重来对它们进行排序,这样不会有问题的。
最接近我正在寻找的图表是使用以下代码:
plt.hist2d(x, y, bins=8, weights=z, cmap="Greys")
plt.colorbar()
但是,这样做的问题是,如果给定“bin”中有多个点,它会计算“聚合”权重 - 例如如果在特定的 bin 中有两个权重分别为 1 和 2.5 的数据点,则 bin 将被着色,就好像它的权重是 1+2.5=3.5。有什么办法可以让它显示与最接近 bin 中心的数据点的权重相对应的颜色?
例如如果权重为 2.5 的数据点非常靠近 bin 中心,而权重为 1 的数据点位于 bin 的边缘之一,有没有办法让 bin 的权重为 2.5?
谢谢你,打扰了。
【问题讨论】:
标签: python numpy plot heatmap contour