пятница, 12 марта 2010 г.

Построение в gnuplot графика функции, заданной в табличной форме

Ниже представлен пример построения графика функции, заданной числовыми данными. Исходные данные содержатся в файле output.dat. Первый столбец - значения координаты х, второй столбец - значения функции y=exp(-x). Третий и четвертый ряды - аппроксимация Паде для этой функции различных порядков. Как можно видеть из данных, эта аппроксимация верна только для малых значений х.


0.10 9.0484E-01 9.0484E-01 9.0484E-01
0.20 8.1873E-01 8.1871E-01 8.1875E-01
0.30 7.4082E-01 7.4074E-01 7.4091E-01
0.40 6.7032E-01 6.7010E-01 6.7059E-01
0.50 6.0653E-01 6.0606E-01 6.0714E-01
 ....
4.60 1.0052E-02 -7.0237E-02 5.7632E-01
4.70 9.0953E-03 -7.2510E-02 6.0325E-01
4.80 8.2297E-03 -7.4627E-02 6.3077E-01
4.90 7.4466E-03 -7.6597E-02 6.5886E-01
5.00 6.7379E-03 -7.8431E-02 6.8750E-01


Построение графика, заданного парами чисел (X,Y)


Построим график функции, заданной в числовой форме в файле "output.dat". В нашем случае каждому значению X соответствуют три разных значения Y. Для построения графика, соответствующего второму столбцу чисел (значения функции EXP(-X)), используется команда using.


gnuplot> plot "output.dat" using 1:2 with lines




Стиль графика задается ключевым словом with. В приведенном выше примере задан стиль lines, когда точки соединены между собой линией. Существует несколько стилей линий, задаваемых числами 1, 2, 3... Если число не задано, gnuplot автоматически присваивает линиям номера стилей, начиная с 1.
Ниже представлены примеры построения графиков с различными стилями: точечные, ступенчатые, бары и т.д.

gnuplot> plot "output.dat" using 1:2 with points




gnuplot> plot "output.dat" using 1:2 with steps




gnuplot> plot "output.dat" using 1:2 with impulses




Несколько линий на одном графике


Теперь построим здесь же графики третьего и четвертого столба. Чтобы нарисовать несколько линий одновременно, последовательно задавайте источник данных: plot "A" using 1:2 with line, "B" using 1:2 with points, ... Иногда такая команда может получиться очень длинной. Если линия завершается символом "\", следующая строка считается продолжением текущей линии. Не вводите никаких символов после обратного слеша.


gnuplot> plot "output.dat" using 1:2 with lines, \
> "output.dat" using 1:3 with lines,\
> "output.dat" using 1:4 with lines




Для второй линии (зеленого цвета) при больших значениях Х значения Y становятся отрицательными, поэтому масштаб по оси Y расширяется до -0,1.
На легенде отображается название файла - источника данных, а для идентификации линий приводятся номера столбцов. Красная линия представляет собой график аналитической функции, поэтому изменим ее название в легенде на "Analytical". Следующая линия - результат аппроксимации Паде при L=1 и M=2, поэтому назовем ее "L=1, M=2". Синяя линия - результат аппроксимации Паде для "L=2, M=2".


gnuplot> plot "output.dat" using 1:2 title "Analytical" with lines, \
> "output.dat" using 1:3 title "L=1, M=2" with lines,\
> "output.dat" using 1:4 title "L=2, M=1" with lines




Вставка названия графика и осей

А теперь вставим названия осей X и Y. Ось Х так и называется "х", а ось Y - "y=exp(-x)". Для того, чтобы задать их, используются команды set xlabel и set ylabel. Кроме того, можно добавить название графика, "Pade approximation" с помощью команды set title. Используя команду replot, можно пропустить длинную команду построения графика.


gnuplot> set xlabel "x"
gnuplot> set ylabel "y=exp(-x)"
gnuplot> set title "Pade approximation"
gnuplot> replot




Изменение масштаба осей X и Y


Теперь изменим масштаб осей. Зададим интервал [0,1] для оси Y и [0,2] для оси Х


gnuplot> set xrange [0:2]
gnuplot> set yrange [0:1]
gnuplot> replot




Изменение цены деления осей Х и Y

Шкала по оси Х начинается с 0 и имеет цену деления 0,5. Для изменения цены деления используется команда set {x|y}tics. Цена деления задается тремя опциональными числами. Если после команды set tics задано одно число, например set xtics 10, то это число "10" и есть цена деления. Если используются два числа, первое задает начальное значение, а второе - цену деления. При трех числах после команды последнее задает наибольшее значение на оси.
Вы можете также разделить интервалы между делениями на промежуточные деления с помощью команды set m{x|y}tics n, где n - количество промежуточных делений.

gnuplot> set xtics 1
gnuplot> set mxtics 5
gnuplot> set ytics 0.5
gnuplot> set mytics 5
gnuplot> replot





Печать графика в файл и завершение работы


Теперь сохраним график в файле Postscript. Для необходимо изменить метод вывода на "postcript" и задать имя файла. Перед выходом из gnuplot сохраните параметры сессии в файле output.plt.


gnuplot> set term postscript
gnuplot> set output "output.ps"
gnuplot> replot
gnuplot> save "output.plt"
gnuplot> quit

Файл output.ps можно просмотреть с помощью любого вьювера, поддерживающего postscript, например gv или ghostview.




Обратите внимание, что вместо цветов для идентификации графиков используется пунктир. Как уже говорилось выше, типы линий и символов зависят от метода вывода. Для того, чтобы узнать, какой номер линии соответствует пунктиру, точкам и т.д., используется команда test. Например, для X window system получим:


gnuplot> set term x11
gnuplot> test




Перевод. Оригинал здесь

1 комментарий: