Gnuplot 采样、等采样及其对等高线的影响

Gnuplot 采样、等采样及其对等高线的影响,gnuplot,contour,Gnuplot,Contour,如果不将samples和isosamples都设置为适当的值,gnuplot生成的等高线可能看起来非常奇怪(出乎意料)。我花了好几个小时才弄清楚set samples和set isosamples如何准确地影响轮廓线的外观,然而,我观察到的是,将两者设置为足够大的值将生成好看的轮廓。不过,我想知道这到底是怎么回事 在等高线的上下文中,set samples和set isosamples之间有什么区别 set samples如何影响等高线的生成 设置isosamples如何影响等高线的生成 例如,

如果不将
samples
isosamples
都设置为适当的值,gnuplot生成的等高线可能看起来非常奇怪(出乎意料)。我花了好几个小时才弄清楚
set samples
set isosamples
如何准确地影响轮廓线的外观,然而,我观察到的是,将两者设置为足够大的值将生成好看的轮廓。不过,我想知道这到底是怎么回事

  • 在等高线的上下文中,
    set samples
    set isosamples
    之间有什么区别
  • set samples
    如何影响等高线的生成
  • 设置isosamples
    如何影响等高线的生成
  • 例如,考虑下面的简单情况:

    unset surface
    set contour
    set cntrparam levels discrete 10, 20
    set samples 250, 2
    set isosamples 2, 250
    set view map
    splot x**2 + y**2
    

    要生成正确的等高线,似乎需要将
    samples
    的第一个参数和
    isosamples
    的第二个参数设置为足够大的值。但是,将
    samples
    的第二个参数和
    isosamples
    的第一个参数设置为尽可能小的值并没有什么坏处。这并不完全是直观的。那么这是如何工作的呢?

    首先,讨论一下
    样本
    isosamples
    的设计用途。这在查看实际绘图而不是等高线图时是最好的

    samples
    用于设置绘制范围内沿轴的函数求值数量。对于
    splot
    (三维图像),您可以在x和y两个独立方向上控制样本。这里是一个示例,其中x方向只有4个评估,y方向有200个评估:

    reset
    set xrange [-10:10]
    set yrange [-10:10]
    set xlabel 'X'
    set ylabel 'Y'
    set samples 4,200
    splot x**2+y**2
    
    在下面的两幅图中,请注意,沿x方向,函数仅计算4次,并在它们之间绘制直线。沿y方向,对其求值200次,看起来像“平滑”曲线。请注意,在两个方向上,仅绘制了10条线。在讨论等值线时,我将在下面讨论这个问题

    朝x轴看:

    朝y轴看:


    因此,在每个轴方向上绘制10条线,因为x和y方向上的等值线的默认值均为10。我们可以随意改变。让我们在两个方向上增加采样以获得平滑曲线,但演示isosamples

    reset
    set xrange [-10:10]
    set yrange [-10:10]
    set xlabel 'X'
    set ylabel 'Y'
    set samples 200,200
    set isosamples 4,12
    splot x**2+y**2
    
    注意两个方向的平滑曲线。沿x轴,只有4个点沿y轴绘制曲面曲线,沿y轴,有12个点平行于x轴绘制曲面曲线


    以上示例说明了
    设置样本
    设置isosamples
    的主要目的。它们只会间接影响轮廓。在您的例子中,您只对等高线图感兴趣,甚至不显示曲面图。关于gnuplot如何绘制等高线的一条线索是,它解释了如何使用谨慎的数据绘制等高线

    格罗马克:

    为了绘制等高线,数据应组织为“网格数据”。在里面 这样的文件将列出单个y等值线的所有点,然后列出所有点 下一条y等值线的点,依此类推。一行空白 不包含除空格和回车符以外的字符和/或 换行)将一条y等值线与下一条y等值线分开


    从这个解释来看,gnuplot似乎更喜欢选择一个x值并绘制一条y等值线。我们可以推断,当gnuplot从函数中绘制轮廓时,它会选择x值并绘制y等值线。因此,具有多个x采样和多个y等值线可以绘制高分辨率轮廓,而y采样和x等值线则不相关(如果您没有绘制曲面)。

    y等值线是具有相等y坐标(从而改变x坐标)的连接点的线。你选择一个x值并画一条y等值线到底是什么意思。拾取要循环的x值,以便您希望x采样为高,但对于每个x,它通过检查y iso线绘制轮廓,以便您希望y isosamples为高。