【问题标题】:Samples, isosamples, and how they affect contour lines样本、等值样本以及它们如何影响等高线
【发布时间】:2018-12-16 15:52:46
【问题描述】:

如果您没有将samplesisosamples 都设置为适当的值,gnuplot 生成的轮廓线可能看起来很奇怪(出乎意料)。我挣扎了好几个小时才知道set samplesset isosamples 究竟是如何影响轮廓线的外观的,但是,我观察到的只是将两者都设置为足够大的值会产生好看的轮廓。不过,我想了解这到底是如何工作的。

  1. set samplesset isosamples 在等高线方面有什么区别?
  2. set samples 如何影响等高线的生成?
  3. set 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 的第一个参数设置为尽可能小的值并没有什么坏处。这并不完全直观。那么这是如何工作的呢?

【问题讨论】:

    标签: gnuplot contour


    【解决方案1】:

    首先,讨论samplesisosamples 的设计用途。这是查看实际绘图而不是等高线图时的最佳选择。

    samples 用于设置沿正在绘制范围内的轴的函数评估次数。对于splot(3-D 图像),您可以在两个独立方向 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
    

    请注意,在以下 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轴的曲面曲线。


    以上示例演示了set samplesset isosamples 的主要用途。它们只会间接影响轮廓。在您的情况下,您只对等高线图感兴趣,甚至不显示曲面图。关于 gnuplot 如何绘制等高线的线索在于它解释了如何使用离散数据绘制等高线。

    格罗麦克斯:

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

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

    【讨论】:

    • Y 轴等值线是连接具有相同 y 坐标(因此 x 坐标不同)的点的线。选择 x 值并绘制 y 等值线到底是什么意思?
    • 措辞不佳。选择要循环的 x 值,因此您希望 x 样本较高,但对于每个 x,它通过检查 y 等值线来绘制等高线,因此您希望 y 等值样本较高。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    相关资源
    最近更新 更多