Python - 问题轮廓绘制偏移网格数据

时间:2017-02-27 19:56:31

标签: python matplotlib interpolation contour

我的数据是有规律的间隔,但不是一个网格 - 每一行的点都与下面的点略有偏差。

数据采用3个1D数组x,y,z的形式,每个索引对应一个点。它是平滑变化的数据 - 近似高斯。

点密度非常高。绘制这些数据的最佳方法是什么?

我尝试过网格网格,但它通过在轮廓值附近没有数据点的区域给出了一些不良轮廓。

我根据这篇文章尝试了rbf插值: Python : 2d contour plot from 3 lists : x, y and rho? 但这只是让我胡说八道 - 所有的轮廓都在一个边缘 - 根本不反映数据。

我可以尝试的任何其他想法。也许我应该使用某种最近邻插值?这是大约1/4的数据点的图片:http://imgur.com/a/b00R6

我很惊讶它给我带来了这样的困难 - 看起来它应该相当容易。

2 个答案:

答案 0 :(得分:1)

绘制未编辑数据的最简单方法可能是tricontourtricontourf(填充的三角图)。

拥有x,y和z坐标xyz的1D数组,您只需调用

plt.tricontourf(x,y,z, n, ...)

获得n级别的轮廓。

另一种快速方法是使用matplotlib.mlab.griddata在网格上进行插值,以从不规则点获得规则网格。

在matplotlib页面的示例中比较了两种方法: Tricontour vs. griddata

答案 1 :(得分:-1)

找到答案:需要重新调整我的数据。