多图中的多个 y 轴部分

Multiple y axis sections in a multiplot

我在每个图中都有一个 multiplot 2,25 lines,这些线的范围与 y 值上的 600-700 相同,因此它们重叠。 我将 +60 +120 +180+240 添加到 y 值,它可以解决问题,但在 gnuplot 中没有办法在 y 轴上添加多个部分。所以我会在第一部分绘制第一行,在第二部分绘制第二行,依此类推,每个部分的范围从 600-700 多图中的 4 个图之一如下所示:

我的代码:

set multiplot layout 2,2 title "Spring Summer Fall Winter"
set title 'Spring'
plot 'Data1.csv' every ::614::637 using 2:3 w l title 'CI 0.2',\
"" every ::963::964 using 2:(+20) w l title 'CI 0.4 [{/Symbol l}ave+20]',\
"" every ::1080::1084 using 2:(+40) w l title 'CI 0.6 [{/Symbol l}ave+40]',
set title 'Sommer'
plot 'Data2.csv' every ::1074::1155 using 2:3 w l title 'CI 0.2',\
"" every ::2548::2618 using 2:(+60) w l title 'CI 0.4 [{/Symbol l}ave+60]',\
"" every ::4017::4092 using 2:(+120) w l title 'CI 0.6 [{/Symbol     l}ave+120]',\
"" every ::5580::5655 using 2:(+180) w l title 'CI 0.8 [{/Symbol l}ave+180]',\
"" every ::7186::7280 using 2:(+240) w l title 'CI 1.0 [{/Symbol l}ave+240]',
set title 'Fall'
plot 'Data3.csv' every ::43::43 using 2:3 w l title 'CI 0.2',\
"" every ::63::63 using 2:(+20) w l title 'CI 0.4 [{/Symbol l}ave+20]',\
"" every ::87::87 using 2:(+40) w l title 'CI 0.6 [{/Symbol l}ave+40]',\
"" every ::135::139 using 2:(+60) w l title 'CI 0.8 [{/Symbol l}ave+60]',\
"" every ::311::362 using 2:(+80) w l title 'CI 1.0 [{/Symbol l}ave+80]',
set title 'Winter' 
plot 'Data4.csv' using 2:3 every ::788::829 w l title 'CI 0.2',\
"" every ::1256::1268 using 2:(+20) w l title 'CI 0.4 [{/Symbol l}ave+20]',\
"" every ::1512::1525 using 2:(+40) w l title 'CI 0.6 [{/Symbol l}ave+40]',\
"" every ::1681::1686 using 2:(+60) w l title 'CI 0.8 [{/Symbol l}ave+60]',
unset multiplot
unset output

所以我已经得到了一个多图,每个季节都有一个图: 在每个 Plot 中,最多有 5 行显示一些数据。 y 轴上的大部分数据都在 600 到 700 之间,所以为了避免重叠的线,即使使用不同的颜色也很难区分,我通常绘制第一条线,然后所有其他线都带有一些附加点( +40 +60等等)这样所有的线都不会在图中的同一个点上而是在彼此之上,这样你就可以比较趋势和漂移。

我想知道的是,是否有一种方法可以将 y 轴简单地切割成最多 5 个区域,每个区域都从 600-700 到达,这样我就可以在顶部区域绘制一条线(600-700) 下一个在前一个的下面,依此类推。因此,所有行都在相同的值字段中但彼此重叠,因此您可以更轻松地区分它们,但在查看 y 轴时不必介意 +20 或任何值,因为每个y 轴上的区域可能有抽动和网格。 这是我制作的图像...

概念验证而不是完整的解决方案,但我认为您可以使用它并从这里开始自定义:

set multiplot layout 6, 2

set format x ""      # no xtic labels
set ytics -4, 2, 4   # adequately spaced, non-overlapping ytic labels

set bmargin 0
plot[][-5:5] "so.dat" every ::0::4 w lp t "spring 1"
plot[][-5:5] "so.dat" every ::5::9 w lp t "summer 1"

set tmargin 0
plot[][-5:5] "so.dat" every ::10::14 w lp t "spring 2"
plot[][-5:5] "so.dat" every ::0::4 w lp t "summer 2"

set bmargin 1
plot[][-5:5] "so.dat" every ::15::19 w lp t "spring 3"
plot[][-5:5] "so.dat" every ::10::14 w lp t "summer 3"
set tmargin 1

set bmargin 0
plot[][-5:5] "so.dat" every ::0::4 w lp t "fall 1"
plot[][-5:5] "so.dat" every ::5::9 w lp t "winter 1"

set tmargin 0
plot[][-5:5] "so.dat" every ::10::14 w lp t "fall 2"
plot[][-5:5] "so.dat" every ::20::24 w lp t "winter 2"

set bmargin 1
plot[][-5:5] "so.dat" every ::5::9 w lp t "fall 3"
plot[][-5:5] "so.dat" every ::10::14 w lp t "winter 3"

unset multiplot

结果图:

数据文件so.dat:

1   -1.8351
2   0.6315
3   -1.3365
4   2.1251
5   -0.6708
6   -3.3965
7   -0.2298
8   0.4807
9   -2.4213
10  -0.5998
11  -1.0238
12  -0.2025
13  0.4362
14  -1.1263
15  3.3197
16  0.0337
17  -0.7374
18  1.1504
19  -0.1656
20  -0.4389
21  1.4645
22  1.6538
23  1.6362
24  -2.0363
25  -4.9741