数组数据集中的2D直方图

时间:2015-12-05 11:52:38

标签: python arrays numpy matplotlib heatmap

我有一个看起来像这样的数组:

    array([[ 912.1,  821.5],
           [ 911.9,  821.5],
           [ 911.9,  821.5],
           ..., 
           [ 654.6,  552.8],
           [ 655. ,  553.3],
           [ 655.4,  553.7]])

所以就像那样组织了250,000个坐标。每个包含一个x值和一个y值。 我想用这个数据创建一个2D直方图。我一直在看教程,但他们似乎都展示了如何从随机数据创建2D直方图,而不是像这样的numpy矩阵。 所以最后它应该是一个热图,其中红色表示比蓝色更多的计数。

有没有人有任何想法或提示来解决这类问题?

1 个答案:

答案 0 :(得分:1)

您可以简单地将数组拆分为xy的各个向量:

x = arr[:,0]
y = arr[:,1]

然后,您可以使用hist2d

以标准方式创建2D直方图
plt.hist2d(x, y)
plt.colorbar()
plt.show()

或者,在一行中:

plt.hist2d(arr[:,0], arr[:,1])

为了进一步提高灵活性,例如更改色阶请阅读numpy.histogram2d的文档。