gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 00:55:38 26 4
gpt4 key购买 nike

我有一个由 7 列和超过 800 万行组成的分散数据文件( data file )。我想绘制此数据的轮廓。我想绘制的列是第一个,第二个和最后一个(第七个),给出一个 2d 和 3d 绘图如下:

正 View :

front view

边缘 View :

edge on view

和简单的 3d:

3d view

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

是否可以使用 gnuplot set contour basecntrparam 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

enter image description here

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

现在您可以使用轮廓进行上述数据处理:
set view map
unset surface
set contour
splot "fort.12" u 1:2:7 w l

enter image description here

最后,请注意,如果要重复使用插值数据,可以将其绘制到带有 set dgrid3d ...; set table "somefile"; plot ...; unset table; unset dgrid3d; plot "somefile" ... 的表中。 (即,绘制到文件)以便 gnuplot 不需要每次都进行插值。

关于plot - gnuplot:分散数据集的等高线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28264885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com