Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gnuplot:将两个数据从不同的数据文件连接到某一点上的行_Gnuplot - Fatal编程技术网

Gnuplot:将两个数据从不同的数据文件连接到某一点上的行

Gnuplot:将两个数据从不同的数据文件连接到某一点上的行,gnuplot,Gnuplot,这个问题是一个延伸 我想要一个使用gnuplot的图形,在混合模式中有两个数据。这是一个由3列组成的数据: #x y1 y2 1 0 1 2 0 1 3 0 1 4 0 1 5 0 1 6 0 1 7 0 1 8 0 1 9 0.1 1.2 10 0.1 1.23 我想要的是一条没有接缝的线。e、 g 从x=1到x=5,使用y1值,然

这个问题是一个延伸

我想要一个使用gnuplot的图形,在混合模式中有两个数据。这是一个由3列组成的数据:

#x   y1   y2
1   0    1    
2   0    1    
3   0    1    
4   0    1    
5   0    1    
6   0    1    
7   0    1    
8   0    1    
9   0.1  1.2
10  0.1  1.23
我想要的是一条没有接缝的线。e、 g

从x=1到x=5,使用y1值,然后从x=6到x=10,使用y2值

并且,所有的点都用一条线连接。有人知道如何使用简单的gnuplot命令来实现吗


还有一个相关问题。如果第3列中的数据被分离到另一个文件中,比如sheme2.dat,我如何使用纯gnuplot命令绘制相同的图形?

如果您绝对想使用纯
gnuplot
,您可以在变量上做一些欺骗(,但我建议您重新考虑这个问题):

这是一种用箭头连接最后一个和第一个数据点的复杂方法,但是这个问题的条件非常具体


对于第1/2列的文件和第2列第3列的文件,您还可以使用
粘贴

plot "<paste -d ' ' data1.dat data2.dat" using 1:($1<=5?$2:$3) with lines

只有当范围[a,b]的最大值在b,而范围[b,c]的最小值在b时,此功能才起作用。在gnuplot 5中,您可以使用
stats
来避免这个问题。哦,对不起,
every
就是为了解决这个问题而存在的,但是它不应该从最后两行中删除吗?不,在最后两行中也需要every。或您可以使用0:($04?$2:1/0)
否将其替换为
。正如我在第一行中提到的,这不是您正确回答的原始问题(),而是一个扩展问题:扩展问题(在最后两行中用粗体表示)是从2个文件中解决问题,其中包含2-2列。您完全正确,我应该更仔细地阅读!我编辑了我的答案来解释这个扩展问题。不错:)你是对的:使用外部粘贴的解决方案比只使用内部Gnuplot命令更简单。不幸的是,OP想要“…使用纯gnuplot命令”:
plot "<paste -d ' ' data1.dat data2.dat" using 1:($1<=5?$2:$3) with lines
plot "data.dat" using 1:($1<=5?$2:$3) with lines