Главная :: gnuplot :: Размещение нескольких графиков на одном листе
Ночь. Сидит программист за компом, дописывает последние строчки новой программы. Но тут неожиданно звонок в дверь. Программист за дверь - а там смерть с косой, но маленькая. - Блин не вовремя ты дай допишу программу, а там и забирай меня... - Не переживай мужик, я не за тобой. Я за твоим винтом!

Размещение нескольких графиков на одном листе

Для построения нескольких отдельных графиков используется команда set multiplot:

set multiplot

Настройка команды осуществляется с помощью необязательных опций:

Замечание. На некоторых терминалах построение графиков происходит только при наличии команды unset multiplot обозначающую конец режима построения нескольких графиков.

Если определена верстка опцией layout r, c, то количество отображаемых графиков (команд вида plot) должно быть меньше или равно r*c (если графиков меньше, чем r*c, то останутся пустые места). При этом размещение графиков и их размер определяется автоматически - размещение согласно правилам rowsfirst|columnsfirst и downwards|upwards, а размер вычисляется по формуле (sx/r, sy/c). Приведем пример для автоматической верстки:

set term png \
    enhanced \
    size 400, 200 \
    font "arial, 8"

set output "multiplot.png"

set xrange[-4:4]
set xtics 2
set key off
set size square

set multiplot \
    title "Общий заголовок" \
    layout 1, 2 \
    scale 1.05 \
    offset 0.05, 0

set title "e^{0.5x} P_1(x) / P_2(x)"
set ylabel "величина"
set ytics 1
plot (1 + x) * (2 - x) * exp(x/5) / (1 + x**2) with points pt 5 ps 0.2

set title "sinh(x)"
unset ylabel
set ytics 15
plot sinh(x) ls 2 lw 2

unset multiplot
Несколько графиков в gnuplot

Если опция layout не указана, то расположение каждого графика нужно задавать в формате:

set size sx, sy
set origin ox, oy
plot ...

set size определяет размер графика, а set origin его расположение (нижний левый угол). Отметим, что с помощью ручного задания размера и положения графиков можно создать произвольную верстку.

set term png \
    size 400, 200 \
    font "arial, 8"

set output "multiplot2.png"

set key off

set size 2, 1
set multiplot

set xrange[-15:4]
set yrange[-1.5:2.4]
set xtics 2
set size 1.2, 1
set origin -0.5, 0
plot (1 + x) * (2 - x) * exp(x/5) / (1 + x**2) with points pt 5 ps 0.2

set xrange[-1:2]
set yrange[0.5:2.4]
set ytics 0.5
set size 0.4, 0.6
set origin 0.1, 0.4
plot (1 + x) * (2 - x) * exp(x/5) / (1 + x**2) with points pt 5 ps 0.2

set xrange[-1:1]
set yrange[-1:1]
set xtics 0.5
set size 0.35, 0.5
set origin 0.65, 0
plot sinh(x) ls 2 lw 2

set origin 0.65, 0.5
plot sin(5*x) ls 3 lw 2

unset multiplot
Несколько графиков в gnuplot
Ручная верстка