我有一组X,Y数据点(大约10k),很容易绘制为散点图,但我想表示为热图.
我查看了MatPlotLib中的示例,他们似乎都已经开始使用热图单元格值来生成图像.
有没有一种方法可以将一堆x,y,所有不同的,转换为热图(其中x,y频率较高的区域会变得"温暖")?
我有3个1-D ndarray:x,y,z
和以下代码:
import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate as spinterp
## define data
npoints = 50
xreg = np.linspace(x.min(),x.max(),npoints)
yreg = np.linspace(y.min(),y.max(),npoints)
X,Y = np.meshgrid(xreg,yreg)
Z = spinterp.griddata(np.vstack((x,y)).T,z,(X,Y),
method='linear').reshape(X.shape)
## plot
plt.close()
ax = plt.axes()
col = ax.pcolormesh(X,Y,Z.T)
plt.draw()
Run Code Online (Sandbox Code Playgroud)
我的情节是空白的,我怀疑是因为方法='线性'插值出现了nans.我试过转换为蒙面数组,但无济于事 - 情节仍然是空白的.你能告诉我我做错了什么吗?谢谢.