一尘不染

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

python

我有一组X,Y数据点(约10k),很容易将其绘制为散点图,但我想将其表示为热图。

我浏览了MatPlotLib中的示例,它们似乎都已经从热图单元格值开始以生成图像。

有没有一种方法可以将所有不同的x,y转换为热图(其中x,y的频率较高的区域会“变暖”)?


阅读 927

收藏
2020-02-17

共1个答案

一尘不染

如果你不想要六角形,可以使用numpyhistogram2d函数:

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

2020-02-17