请原谅我的无知,但无论如何,所有内插,2D地图解决方案的平滑处理都需要关系Z~f(x,y)
,并且不适合我的问题。这最接近我的问题:smoothing surface plot from matrix
我有三列相同的长度:X坐标,Y坐标和Z值
我可以像这样绘制散点图
以Z作为填充物/颜色图,但是它看起来像是规则间隔的网格上的点。
我想对它们进行插值和平滑以填充网格点之间的间隙,但是我不知道Z~f(x,y)
是什么。有没有办法做到这一点?
我假设您具有以下数据:
x
:x值[-120, -100, ..., 140, 160]
y
:y值[-180, -160, ..., 80, 100]
z
:一个二维数组,其中包含网格中每个点的z值现在您可以将数据绘制为可以为您进行插值的图像:
from matplotlib.pyplot import imshow
extent = [x.min(), x.max(), y.min(), y.max()]
imshow(z, interpolation="none", extent=extent, origin="lower")
extent
定义图像的轴。您可以使用interpolation
参数进行操作。
黑圈是散点图中的标记(代码中未显示。)>
如果需要散点图标记位于每个像素的中心,则必须像这样更改interpolation
:
extent
与
ox = (x.max() - x.min()) / (x.size * 2) oy = (y.max() - y.min()) / (y.size * 2) extent = [x.min() - ox, x.max() + ox, y.min() - oy, y.max() + oy]
插值一起看起来如下:
bilinear