gnuplot, разбить ось Y на две части
У меня есть гистограмма с небольшими значениями и очень большими значениями. Как я могу разбить ось Y на две части?
РЕДАКТИРОВАТЬ:
Пример gnuplot:
set style histogram columnstacked
set style data histograms
set key autotitle columnheader
plot for [i=2:6] 'test.dat' using i
test.dat:
action device1 device2 device3
load 200 203 190 2 4
process 3 9 6 7 3
save 4 2 7 4 3
1 ответ
Решение
Мой ответ основан на примере и комментариях на этом сайте. По сути, вы ищете ломаную ось Y, которая может быть достигнута с помощью multiplot
опция:
reset
unset key
bm = 0.15
lm = 0.12
rm = 0.95
gap = 0.03
size = 0.75
kk = 0.5 # relative height of bottom plot
y1 = 0.0; y2 = 15.0; y3 = 180.0; y4 = 220.0
set style histogram columnstacked
set style data histograms
set key autotitle columnheader
set style fill solid 1.0 border -1
set multiplot
set border 1+2+8
set xtics nomirror
set ytics nomirror
set lmargin at screen lm
set rmargin at screen rm
set bmargin at screen bm
set tmargin at screen bm + size * kk
set yrange [y1:y2]
plot for [i=2:6] 'test.dat' using i
unset xtics
unset xlabel
set border 2+4+8
set bmargin at screen bm + size * kk + gap
set tmargin at screen bm + size + gap
set yrange [y3:y4]
plot for [i=2:6] 'test.dat' using i
unset multiplot
Примечания:
- Первый блок кода определяет размер вашего графика, а также два мин / макс для диапазона оси Y.
- Второй блок кода устанавливает стиль вашей гистограммы. Я предлагаю вам использовать заполненные столбцы (в противном случае вы можете получить неправильные цвета там, где график обрезан по оси y).
- Третий блок начинает вас
multiplot
окружение и настраивает нижний участок (4-й блок). - Пятый блок кода определяет ваш верхний график.
- Чтобы настроить свой график, измените параметры в первом блоке (
bm
,lm
,rm
,gap
,size
,kk
а такжеyi
)
И вот результат: