首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >样本、等深线及其对等高线的影响

样本、等深线及其对等高线的影响
EN

Stack Overflow用户
提问于 2018-07-09 02:11:10
回答 1查看 1.9K关注 0票数 2

如果您不将samplesisosamples都设置为适当的值,则gnu图生成的轮廓线可能看起来非常奇怪(意外)。我挣扎了几个小时来找出set samplesset isosamples到底如何影响轮廓线的外观,然而,我所观察到的是,将两者都设置为足够大的值将生成好看的等高线。不过,我还是想知道这到底是怎么回事。

  1. 在等高线的上下文中,set samplesset isosamples有什么区别?
  2. set samples如何影响等高线的生成?
  3. set isosamples如何影响等高线的生成?

例如,考虑以下简单情况:

代码语言:javascript
复制
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的第一个参数设置为最小的可能值并不有害。这并不完全是直观的。这是怎么回事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-13 05:35:32

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

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

代码语言:javascript
复制
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。我们可以随意改变这一点。让我们增加两个方向的样本,以获得一个很好的平滑曲线,但演示等值线。

代码语言:javascript
复制
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的主要用途。它们只是间接地影响轮廓。在您的例子中,您只对等高线图感兴趣,甚至没有显示表面图。在解释如何用离散数据绘制等高线时,提供了一条关于如何绘制图形等高线的线索。

格罗马奇:

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51237482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档