Несколько секций оси Y в мультиплоте

У меня есть multiplot 2,2 с 5 lines на каждом графике, линии варьируются примерно от тех же значений от 600-700 на значении y, поэтому они перекрываются. Я добавил +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:($3+20) w l title 'CI 0.4 [{/Symbol l}ave+20]',\
"" every ::1080::1084 using 2:($3+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:($3+60) w l title 'CI 0.4 [{/Symbol l}ave+60]',\
"" every ::4017::4092 using 2:($3+120) w l title 'CI 0.6 [{/Symbol     l}ave+120]',\
"" every ::5580::5655 using 2:($3+180) w l title 'CI 0.8 [{/Symbol l}ave+180]',\
"" every ::7186::7280 using 2:($3+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:($3+20) w l title 'CI 0.4 [{/Symbol l}ave+20]',\
"" every ::87::87 using 2:($3+40) w l title 'CI 0.6 [{/Symbol l}ave+40]',\
"" every ::135::139 using 2:($3+60) w l title 'CI 0.8 [{/Symbol l}ave+60]',\
"" every ::311::362 using 2:($3+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:($3+20) w l title 'CI 0.4 [{/Symbol l}ave+20]',\
"" every ::1512::1525 using 2:($3+40) w l title 'CI 0.6 [{/Symbol l}ave+40]',\
"" every ::1681::1686 using 2:($3+60) w l title 'CI 0.8 [{/Symbol l}ave+60]',
unset multiplot
unset output

Итак, у меня уже есть мультиплот с одним сюжетом для каждого сезона: на каждом сюжете есть до 5 строк, показывающих некоторые данные. Большая часть данных по оси y находится в области между 600 и 700, поэтому, чтобы избежать перекрытия линий, которые трудно различить даже с разными цветами, я нарисовал первую линию нормально, а затем все остальные линии с некоторой дополнительной точкой ( +40 +60 и т. Д.), Чтобы все линии находились не в одном месте на графике, а друг над другом, чтобы вы могли сравнивать тенденции и отклонения.

Я хочу знать, есть ли способ просто разрезать оси y на 5 областей, каждая из которых выходит из 600-700, поэтому я могу построить одну линию в верхней области (600-700), следующую в области ниже предыдущей и так далее. Таким образом, все строки находятся в одном и том же поле значений, но расположены друг над другом, так что вы можете легче различать их, но и не должны помнить о +20 или другом значении при просмотре осей y, поскольку каждая из этих областей на оси y топоры могли иметь тики и сетку. Вот изображение, которое я сделал ...  введите описание изображения здесь


person Peter S    schedule 29.10.2015    source источник
comment
Из вашего вопроса сложно понять, что у вас есть и чего вы хотите вместо этого достичь. Может быть, вы можете опубликовать какие-то данные (ссылку на файл) и код, который у вас есть, чтобы мы могли взять их оттуда?   -  person vaettchen    schedule 29.10.2015
comment
Думаю, для этого вам понадобится мультиплот 2 x 10. Я постараюсь найти время, но это довольно сложно ...   -  person vaettchen    schedule 29.10.2015


Ответы (1)


Доказательство концепции, а не полное решение, но я думаю, вы можете использовать это и начать настройку отсюда:

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
person vaettchen    schedule 29.10.2015