我有一组X,Y数据点(约10k),很容易绘制为散点图,但我想表示为热图.
我查看了MatPlotLib中的示例,它们似乎都已经从heatmap单元格值开始生成图像.
有没有一种方法可以将一束不同的x,y转换成热图(其中x,y频率较高的区域会"更热")?
我有一组X,Y数据点(约10k),很容易绘制为散点图,但我想表示为热图.
我查看了MatPlotLib中的示例,它们似乎都已经从heatmap单元格值开始生成图像.
有没有一种方法可以将一束不同的x,y转换成热图(其中x,y频率较高的区域会"更热")?
如果不需要六边形,可以使用numpy的histogram2d
函数:
import numpy as np
import numpy.random
import matplotlib.pyplot as plt
# Generate some test data
x = np.random.randn(8873)
y = np.random.randn(8873)
heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
plt.clf()
plt.imshow(heatmap.T, extent=extent, origin='lower')
plt.show()
这是一张50x50的热图.如果你想,比如说512x384,你可以打bins=(512, 384)
到histogram2d
.
示例: