GNUPLOT

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

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

О 2D Plot (No.1)

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

Я хочу, чтобы окно plot было фиксированного размера

Область, в которой gnuplot вращает график зависит от оси и подписи делений. Чтобы установить размер графика, нужно настроить поля с помощью set margin. Существует 4 вида margin: верхний (tmargin), нижний (bmargin), левый (lmargin) и правый (rmargin). По умолчанию все поля рассчитываются автомотически. Текущие настройки можно посмотреть командой:

gnuplot> show margin

        lmargin is computed automatically
        bmargin is computed automatically
        rmargin is computed automatically
        tmargin is computed automatically

Следующий пример показывает случай, когда все поля приведены вручную.

gnuplot> set lmargin 10
gnuplot> set bmargin 3
gnuplot> set rmargin 2
gnuplot> set tmargin 1

Когда поля определены явно, размер графика не изменится, ровно как и деления X и Y

fig/sample5.1a fig/sample5.1b

Чтобы исправить положение подписей осей, необходимо указать смещение в опции set {x|y}label.

up

Я хочу использовать обе стороны оси Y

Иногда необходимо поместить несколько графиков в одной плоскости. В gnuplot можно использовать верхнюю и нижнюю, а также левую и правую оси отдельно.

По умолчанию ось Y2, как и ось Y, является левая. Сделаем эти две оси разными, а в тоже время и график sin(x) вместе с его площадью. Опция axis в plot определяет, какая ось используется для масштабирования. Синтаксис: axis + x1y1, x1y2, x2y1, x2y2. Например, axis x1y2 означает, что функция будет размещена в нижней оси X и в правой оси Y.

gnuplot> set xrange [0:2*pi] 
gnuplot> set yrange [-1:1] 
gnuplot> set y2range [0:1]  
gnuplot> plot sin(x)    axis x1y1, \
              sin(x)**2 axis x1y2 
fig/sample5.2a

В этом случае параметры правой и левой оси Y совпадают. Чтобы сделать их различными, необходимо использовать nomirror опции set ytics и set y2tics, которые перенесут вторую ось вправо.

gnuplot> set y2tics 0, 0.2
gnuplot> set ytics nomirror
fig/sample5.2b

Если необходимо подписать оси, используют выноски. Это может быть сделанно с помощью опции set arrow .


up

Я хочу, чтобы не было осей

Gnuplot отображает верхнюю, нижнюю, левую и правую оси координат. Для удаления этих осей координат используется опция set border n . Каждой оси присваивается целое значение: нижней - 1, левой - 2, верхней - 4 и правой - 8. Значение n - это сумма введеных значений. Например, ось X1 показывается при n=1, X1 и Y1 - при n=3, все оси координат - при n=31. Команда set border влияет только на сами линии границ, так что деления остаются даже при n=0. Для того, чтобы стереть оси, необходимо использовать set no{x|y}tics или set {x|y}tics nomirror. В следующем примере показанно как удалить верхнюю и правую границы.

gnuplot> set border 3
gnuplot> set xtics nomirror
gnuplot> set ytics nomirror
fig/sample5.3
up

Я хочу нарисовать квадрат или фигуру с определенными пропорциями

Эта возможность была очень затруднительна в старых версиях gnuplot, но сегодня она поддерживается. Необходимо задать площадь участка с помощью опции square для команды set size.

gnuplot> set size square

Аналогичным способом исправляются пропорции:

gnuplot> set size ratio 2

В этом случае длина оси Y в два раза больше оси X. Этот масштаб не зависит от значений X и Y. Для того чтоб оси X и Y имели одну длину, задают отрицательные значения для отношения масштаба. Если коэффициент равен -1, то длина единичного отрезка оси X равно единичному отрезку оси Y. Если -2, то ось Y становиться в 2 раза длинее.

fig/sample5.4a
площадь
fig/sample5.4b fig/sample5.4c
коэффициент 2 коэффициент 0.5
fig/sample5.4d fig/sample5.4e fig/sample5.4f
коэффициент -1 коэффициент -2 коэффициент -4
up