gnuplot:分散数据集的等高线图

gnuplot:分散数据集的等高线图,plot,gnuplot,Plot,Gnuplot,我有一个分散的数据文件,由7列和8000多行组成()。我想为这些数据绘制等高线。我要绘制的列包括第一列、第二列和最后一列(第七列),给出了如下二维和三维绘图: 前视图: 边视图: 还有简单的3d: 从第二个图中可以看出,第一件事是点聚集在2d区域的特定位置,与3d图中可以看到的最小值相同的区域。但是,第二,这些点在平面上是随机分布的(第二幅图),我想我不能用矩阵表示来画iso-z的轮廓 是否可以使用gnuplot设置轮廓基准和cntrparam levels来执行此操作?您需要一些平滑(或

我有一个分散的数据文件,由7列和8000多行组成()。我想为这些数据绘制等高线。我要绘制的列包括第一列、第二列和最后一列(第七列),给出了如下二维和三维绘图:

前视图:

边视图:

还有简单的3d:

从第二个图中可以看出,第一件事是点聚集在2d区域的特定位置,与3d图中可以看到的最小值相同的区域。但是,第二,这些点在平面上是随机分布的(第二幅图),我想我不能用矩阵表示来画iso-z的轮廓

是否可以使用gnuplot
设置轮廓基准
cntrparam levels
来执行此操作?

您需要一些平滑(或插值算法)。
set dgrid3d
选项可帮助您创建常规栅格,并从散乱数据集中插值值。插值数据的方法多种多样,有关详细信息,请查看
help set dgrid3d
。我使用了高斯涂抹,您的数据看起来不错:

set dgrid3d 50,50 gauss 10e-6,10e-6
set logscale z
splot "fort.12" u 1:2:7 w l

注:gnuplot将需要一些时间来生成新的50x50网格(如果您增加网格点的数量,计算时间将相应增加),以低分辨率进行一些测试,如果您需要非常精细的细节,则可以使用更精细的网格来生成“生产图”。你可以在高斯核中使用距离缩放来改变图形的外观,但是对于你的数据集,如果你比我上面的例子小得多,那么你的表面看起来会很嘈杂

现在,您可以将等高线与上述数据处理一起使用:

set view map
unset surface
set contour
splot "fort.12" u 1:2:7 w l


最后,请注意,如果要重用插值数据,可以使用
set dgrid3d。。。;设置表“somefile”;情节未设置表;取消设置dgrid3d;打印“somefile”…
(即打印到文件),这样gnuplot就不需要每次都进行插值。

非常感谢!这就是我真正需要的答案!