GNUPLOT

-не так Часто Задаваемые Вопросы-

обновлено 2010/12/26

О 2D Plot (No.4)

1 | 2 | 3 | 4 | 5 | 6 | 7

Я хочу нарисовать 2 оси в разных масштабах

Иногда необходимо сделать 2 оси в одной фигуре --- например, ось X - температура в цельсиях (C) и абсолютная (K). Есть несколько способов это сделать, например, отобразить несколько фигур с помощью multiplot, или использовать противоположные оси. Вот пример использования multiplot.

Сделаем 2 оси X. Сначала, сделаем фигуру меньше высотой, нижнюю грань занулим, перейдем в режим multiplot.

gnuplot> set size 1.0,0.7
gnuplot> set bmargin 0
gnuplot> set yrange [0:5]
gnuplot> set multiplot

Немного увеличим фигуру и построим верхний график. В следующем примере изображаем функцию y=exp(x)-1. Единица x - "минуты".

multiplot> set origin 0,0.3
multiplot> set xrange [0:2]
multiplot> set xtics 1
multiplot> set xlabel "Time [min]"
multiplot> plot exp(x)-1 notitle

Теперь нижний рисунок. Рисуем только ось X. Чтоб избежать дублирования, настроим деления при помощи set noytics, set xtics nomirror. В конце, строим функцию, которая не вписывается в построение (Я имею ввиду, она находится вне графика).В данном примере это y=-1

multiplot> set origin 0,0.15
multiplot> set xrange [0:120] 
multiplot> set xtics nomirror 30 
multiplot> set noytics
multiplot> set xlabel "Time [sec]"
multiplot> set border 1
multiplot> plot -1 notitle
multiplot> set nomultiplot
gnuplot> 
fig/sample5.12

Ну... вероятно есть более элегантный способ сделать это, чем описывамый в примере, но это не проблема. Точно настроить расстояние между двумя осями X не легко. Проще добавить новую ось другими программами отличных от gnuplot, таких как Tgif (http://bourbon.usc.edu/tgif).

up

Я хочу сделать сетку в произвольной позиции.

Команда set grid делает сетку на позициях основных делений и они обычно равноудалены. Чтобы сделать сетку на произвольной позиции, отрегулируйте положение основных делений командой set tics.

В следующем примере три деления отображаются на уровне 0.5, 1.2, и 2.5 командой set xtics .

gnuplot> set xtics ("0.5" 0.5, "1.2" 1.2, "2.3" 2.3)
gnuplot> set grid
fig/sample5.13a

Чтобы произвольная сетка содержала позиции равноудаленных делений, используют противоположные оси. Выбирете позицию сетки при помощи set x2tics, затем сделайте сетку на оси X2 опцией команды set grid.

gnuplot> set xtics 0,1
gnuplot> set x2tics ("0.5" 0.5, "1.2" 1.2, "2.3" 2.3)
gnuplot> set grid noxtics x2tics
fig/sample5.13b

Если необходимо удалить подписи в верхней части изображения используется set x2tics "" 0.5 . Эти цифры исчезают, но основные характеристики на оси X2 по-прежнему остаются.

up