python中的热图表示给定矩形区域中的(x,y)坐标

Posted

技术标签:

【中文标题】python中的热图表示给定矩形区域中的(x,y)坐标【英文标题】:Heatmap in python to represent (x,y) coordinates in a given rectangular area 【发布时间】:2018-06-03 14:22:38 【问题描述】:

假设我们有 x,y 坐标作为输入,其中 x 在范围 (0,300) 内,y 在范围 (0,400) 内 我想在宽度介于 (0,300) 和高度介于 (0,400) 之间的矩形网格中将所有这些坐标绘制为热图。

使用 seaborn 或 matplotlib,我可以绘制散点图,但很难将这些点绘制为热图。

x = numpy.random.randint(0, high=50, size=5000, dtype='l')
y = numpy.random.randint(0, high=50, size=5000, dtype='l')

因此,如果我的样本大小为 5000 点,并且所有点都几乎在 x 为 (0,50) 和 y 为 (0,50) 的范围内,在 300x400 的矩形空间中表示它们应该展示出最高的坐标密度在 50x50 空间中。

有人可以指导我如何表示这些数据吗?

为了测试和绘制散点图,我使用了 seaborn 的 lmplot 函数。

df = pd.DataFrame()

df['x'] = pd.Series(numpy.random.randint(0, high=320, size=5000, dtype='l'))
df['y'] = pd.Series(numpy.random.randint(0, high=480, size=5000, dtype='l'))
sns.set_style('whitegrid')
sns.lmplot('x','y',data=df,
       palette='coolwarm',size=10,fit_reg=False)
plt.show()

【问题讨论】:

您在寻找二维直方图吗? 是的,但我无法使用 np.histogram2d 正确表示数据,您能帮忙解决这个问题吗? 这有帮助吗? ***.com/questions/33282368/… 【参考方案1】:

似乎这里想要的是一个二维直方图。这可以使用plt.hist2d 绘制。

例子:

import numpy as np
import matplotlib.pyplot as plt

x = np.random.rayleigh(50, size=5000)
y = np.random.rayleigh(50, size=5000)


plt.hist2d(x,y, bins=[np.arange(0,400,5),np.arange(0,300,5)])

plt.show()

【讨论】:

谢谢你,bin 范围有助于正确绘制它!

以上是关于python中的热图表示给定矩形区域中的(x,y)坐标的主要内容,如果未能解决你的问题,请参考以下文章

使用散点数据集在 MatPlotLib 中生成热图

X Y Z 数组数据到热图

matplotlib 中的 3D 离散热图

如何通过坐标给定的点来识别可变大小的区域?

如何在蒙特卡洛积分中查找点x,y是不是在给定矩形内

区域搜索中的点