如何生成等高线图?

3

不一定需要等高线图,但类似的东西也可以。有些人称之为热力图可能也可以。 - Roland Rabien
5个回答

3

2
有很多插值算法可以用来获取中间点。在GIS中我使用过Kriging算法,看起来你发布的数据也是类似的。 (你可以通过观察"热黄色"区域,例如它们并不是以黄色样本为中心,这与线性插值的情况不同) Wikipedia的Bicubic Interpolation页面有一些不同插值方式的好例子。 不同的数据可能需要不同的插值方法。
然后使用Gnuplot 如此描述, 来创建颜色等高线图。 看起来它可以处理非矩形数据,但我会测试一下这个假设。
一个例子:

GnuPlot轮廓图示例
(来源: lanl.gov)


1

所展示的图像不是传统的等高线图。它基本上是Matlab可能使用函数pcolor生成的,如果该函数可以直接处理散点数据。实际上,pcolor只是surf,并调用view(0,90)。

如果您真的想看到等高线图,则最简单的答案是使用文件交换中找到的tricontour。此工具将三角化散点数据,然后生成等高线图。

如果您希望在散点数据集上生成类似于pcolor的解决方案,则简单的解决方案是使用delaunay对数据进行三角剖分,然后调用trisurf。调用可能看起来有些像这样...

tri = delaunay(x,y);
trisurf(tri,x,y,z)
view(0,90)

诚然,该解决方案无法为您提供原始图片中漂亮的圆形彩色域。为此,需要其他更复杂的解决方案。但由于我还不确定上述解决方案是否可接受,因此我暂时在这里停止。


1

这里开始

Origin的XYZ Contour图形允许您创建等高线图,而无需将XYZ数据转换为矩阵。它使用一种称为三角剖分的插值形式。

三角剖分是将表面或平面多边形划分为一组三角形,通常限制每个三角形边完全由两个相邻三角形共享。三角剖分的附加好处是能够处理稀疏和不规则数据。

听起来似乎有些困难,但是可行。


0
搜索2D插值。有一些简单的算法,但它们可能表现不佳(或需要很长时间计算)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接