如何使用 gnuplot 在一个图中绘制具有不同 x 范围的折线图

How to plot line graphs with different x-range in one figure using gnuplot

我有一个包含 3 列的数据集。例如

ifile.txt
1     4    3
2     2    5
3     4    7
4     6    7
5     9    6
6     0    8
7     3    4
8     3    4
9     2    4
.     .    .
.     .    .

我想在同一图中使用 1:2 和 x 范围 [3:7] 绘制一条线,另一条线使用 1:3 和 x 范围 [5:9] 绘制

我试图在 plot 命令中进行修改,但是做不到。

plot\
 'ifile.txt' using 1:2 with xr [3:7],\
 'ifile.txt' using 1:3 with xr [5:9]

您需要分别设置轴和控制点。这应该可以帮助您完成:

set xrange  [3:7]
set x2range [5:9]
set x2tics  5, 1
set yrange  [3:10]
set y2range [3:10]
set y2tics  4, 9, 1

plot 'ifile.txt' u 1:2 axes x1y1, 'ifile.txt' u 1:3 axes x2y1 w lp

通常,如果两个图需要一个共同的x轴,则必须过滤using语句中的数据,并为所有超出所需范围的数据点赋予无效值,1/0:

f(value, left, right) = (value < left || value > right ? 1/0 : value)

plot 'ifile.txt' using (f(, 3, 7)):2,\
     '' using (f(, 5, 9)):3