【问题标题】:gnuplot: plotting with image, how to add a contourgnuplot:用图像绘图,如何添加轮廓
【发布时间】:2015-03-14 14:38:11
【问题描述】:

我有以下场景:我使用with image 绘制数据以绘制强度级别图。它们已经被装箱了。现在我正在寻找一种方法来绘制相同的数据,以便获得等高线图。我想要这样做,以便我可以将此图用作另一个图的叠加层,以便人们看到那里的强度级别。

我知道使用线条是可能的,但是我必须先从数据中创建线条,同时识别每个强度级别的边界。我希望有一种更直接的方法可以通过 gnuplot 实现这一目标。

使用with image 来可视化我想在这里实现的示例图:

为此,我想得到像here 所示的轮廓。

数据格式如下:

0 0 36
0 1 36
0 2 36
0 3 36
0 4 36

每行包含:XCoord YCoord IntensityLevel

我想要实现的是从相同的数据中绘制一个图,为我提供强度级别的等高线(这样我也可以决定让等高线拉伸两个或更多强度级别)。有没有办法在不生成新数据的情况下实现这一目标?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    您可以使用表格通过splot 生成轮廓来执行此操作。大致如下:

    set contour
    unset surface
    set cntrparam levels auto 20 # Modify this to your liking
    # I'm not sure this is actually needed
    set view map
    unset clabel
    #
    set table "contours.dat"
    splot "data.dat" u 1:2:3 not
    unset table
    unset contour
    
    plot "data.dat" u 1:2:3 w image not, "contours.dat" u 1:2 lc 0 w l not
    

    我放置了很多轮廓 (20),以便您可以看到效果。对于轮廓选项,请尝试help set cntrparam

    另一种可能性是直接使用splot ... with pm3d 而不是plot ... with image,但如果您使用基于矢量的终端,由于文件大小,这可能是不可取的。

    【讨论】:

    • 非常感谢您的回答!对不起,我现在只能测试它。我得到垂直线和一些轮廓。我不知道错误是什么,但我可以告诉你我的数据是什么样的:pastebin.com/DtJbE51W
    • @Sjoerd2228888 查看编辑,可能是 unset surface 丢失了。
    • 顺便说一句,是否有 gnuplot 命令可以再次删除临时文件“contours.dat”?
    • @Sjoerd2228888 在plot ... 命令之后尝试系统调用system("rm contours.dat")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2021-01-05
    相关资源
    最近更新 更多