【问题标题】:2D Histogram out of array data set数组数据集外的二维直方图
【发布时间】:2016-03-10 08:16:31
【问题描述】:

我有一个如下所示的数组:

    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 直方图。我一直在看教程,但它们似乎都展示了如何从随机数据创建二维直方图,而不是像这样的 numpy 矩阵。 所以最后它应该是一个热图,例如红色表示比蓝色更多的计数。

有没有人有解决这类问题的想法或提示?

【问题讨论】:

  • pl.hist2d(data[:,0], data[:,1])

标签: python arrays numpy matplotlib heatmap


【解决方案1】:

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

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

然后,您可以使用hist2d 以标准方式创建二维直方图:

plt.hist2d(x, y)
plt.colorbar()
plt.show()

或者,在一行中:

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

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

【讨论】:

  • 感谢您的快速回答!
  • 我知道我还有第二个问题。该数组中的一些坐标是:... [nan, nan], [nan, nan], ... 所以没有值。我想把它们排除在外或跳过它们。如果我不这样做,我会收到此错误:ValueError: cannot convert float NaN to integer Is there a possible to do so?
  • 请发布一个包含示例的新问题。或者,更好的是,先做一点研究。参见例如这里:stackoverflow.com/q/11620914/2737715
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-17
  • 1970-01-01
  • 2021-08-05
  • 2015-05-30
  • 2021-10-13
  • 1970-01-01
相关资源
最近更新 更多