Gnuplot 使用直线打印时的Splot行为

Gnuplot 使用直线打印时的Splot行为,gnuplot,Gnuplot,我最近偶然发现了一个Gnuplot产生(至少对我来说)意外结果的例子,所以我想知道它是否真的是期望的行为。设置如下所示: set terminal pngcairo set output plot3d?"plot1.png":"plot0.png" unset key set xtics nomirror set ytics nomirror set xr [0.5:2.5] set yr [-0.5:4.5] set multiplot layout 1,2 $data0 <<

我最近偶然发现了一个Gnuplot产生(至少对我来说)意外结果的例子,所以我想知道它是否真的是期望的行为。设置如下所示:

set terminal pngcairo
set output plot3d?"plot1.png":"plot0.png"

unset key
set xtics nomirror
set ytics nomirror
set xr [0.5:2.5]
set yr [-0.5:4.5]

set multiplot layout 1,2

$data0 << EOD
1   2   1
2   4   1
1   3   1


1   0   1
2   2   1
1   1   1
EOD

$data1 << EOD
1   2   1
2   4   1
1   3   1

1   0   1
2   2   1
1   1   1
EOD


if(plot3d){
    set view map
    splot $data0 w lp, \
        '' u 1:2:3:(sprintf("%d", $0)) w labels offset char 0, char -0.5

    splot $data1 w lp, \
        '' u 1:2:3:(sprintf("%d", $0)) w labels offset char 0, char -0.5
}else{
    plot $data0 w lp, \
        '' u 1:2:(sprintf("%d", $0)) w labels offset char 0, char -0.5

    plot $data1 w lp, \
        '' u 1:2:(sprintf("%d", $0)) w labels offset char 0, char -0.5
}
设置终端pngcairo
设置输出plot3d?“plot1.png”:“plot0.png”
取消设置键
设置xtics名称错误
设置ytics名称错误
设置xr[0.5:2.5]
设定年[-0.5:4.5]
设置多点布局1,2

$data0是的,您描述的行为对于
splot
是正确的。实际上,您显示的引用明确提到了
plot
,而不是
splot
。有关
splot
行为,请参阅“splot>数据文件”的文档,其中说明:

单个空白记录
splot
数据文件中的单独数据块
splot
将数据块视为功能y等值线的等价物。没有行将连接由空白记录分隔的点。如果所有数据块包含相同数量的点,gnuplot将在数据块之间绘制交叉等值线,连接相应的点。这被称为“网格数据”

因此,一般来说,单个空行用于构造
splot
的网格数据,或允许使用
every
选择数据点和数据块


两个空白行在分隔两个数据集时总是具有相同的含义,可以使用
索引

选择这两个数据集感谢您的详细解释…:)我的问题是由最近有人提出的,关于3d绘图中的奇怪轮廓,他/她正在从一个文件(以前使用
生成)中绘制轮廓,结果非常奇怪-原因似乎恰恰是生成的文件中的单个轮廓仅用一条空行分隔。。。