Почта
Чат
Диск
     

Gnuplot

Для построения научных графиков Клином Келли и Томасом Вильямсом в 1986 году была разработана первая версия программы Gnuplot. Возможности Gnuplot постоянно расширяются и в настоящее время программа позволяет легко создавать иллюстрации самого высокого уровня для использования в научных отчетах, публикациях и книгах:

Команды Gnuplot вводятся либо в интерактивном режиме в текстовой консоли этой программы, либо предварительно записываются в обычный текстовый файл, а затем этот файл передается программе Gnuplot для последовательного выполнения всех записанных команд (этим способом мы и будем пользоваться). В результате выполнения команд Gnuplot создает графический файл с изображением графика.

Установка программы

Для установки Gnuplot выполните команду:

sudo apt-get install gnuplot

Построение графиков по данным из текстового файла

Рассмотрим работу с Gnuplot на примере построения графика по данным из текстового файла earth.txt, содержащего три столбца данных: время, влагосодержание атмосферы, температура воздуха.

1984-01-01	23.1	285.7	
1984-02-01	24.0	286.0	
1984-03-01	24.0	287.2	
1984-04-01	24.5	288.2	
1984-05-01	25.0	289.1	
1984-06-01	26.1	289.8	
1984-07-01	26.7	290.1	
1984-08-01	26.9	289.6	
1984-09-01	26.0	288.6	
1984-10-01	25.4	287.4	
1984-11-01	24.1	286.1	
1984-12-01	23.0	285.3	
Это реальные данные проекта ISCCP за период с 1984 по 2000 год о средних глобальных значениях содержания водяного пара в атмосфере (в миллиметрах) и приземной температуры воздуха (в Кельвинах).

Для того, чтобы получить файл с графиком, необходимо выполнить представленные ниже Gnuplot-команды, которые для удобства записаны в файл temperature.plot:

set terminal postscript eps enhanced "Arial" 14
set output "temperature.ps"
set datafile separator "\t"
set timefmt "%Y-%m-%d"
set xdata time
set format x "%Y"
set grid
set xlabel "Time (UTC)"
set ylabel "Air Temperature (K)"
plot "earth.txt" using 1:3 notitle with lines lt 1 lw 3
Скопируйте файлы earth.txt и temperature.plot на диск локального компьютера в один и тот же каталог. Перейдите в этот каталог и выполните команду:
gnuplot temperature.plot
В текущем каталоге появится файл temperature.ps с изображением в формате PostScript. Это векторный формат графических файлов, который позволяет получать изображения высокого качества. Однако, для последующего использования изображения в офисных пакетах (текстовых документах, презентациях) необходимо использовать один из растровых форматов изображений (PNG, JPEG и т.п.). Предпочтительным форматом является PNG, реализующий сжатие изображения без потерь. Для преобразования файла из формата PostScript в формат PNG используйте команду:
convert -density 120 -geometry 100% -flatten temperature.ps temperature.png
В результате появится файл temperature.png с изображением зависимости температуры от времени.

Построение точечного графика

Этот же файл данных earth.txt может быть использован для построения зависимости влагосодержания атмосферы от температуры воздуха.

Для построения такого точечного графика используйте следующие Gnuplot-команды, записанные в файл correlation.plot:

set terminal postscript eps enhanced "Arial" 14
set encoding koi8r
set output "correlation.ps"
set datafile separator "\t"
set grid
set xlabel "Air Temperature (K)"
set ylabel "Water Vapour (mm)"
plot "earth.txt" using 3:2 notitle with points pt 6 ps 0.7
Скопируйте файл correlation.plot в каталог, вместе с файлом earth.txt. Перейдите в этот каталог и выполните команды:
gnuplot correlation.plot
convert -density 120 -geometry 100% -flatten correlation.ps correlation.png

Контрольные задания

  1. Постройте на одном рисунке одновременно три графика временного хода количества облаков нижнего, среднего и верхнего ярусов по данным ISCCP. Для этого воспользуйтесь данными со страницы: http://www.meteolab.ru/projects/sun/.

Полезная информация

Официальный сайт Gnuplot (англ.)
Руководство пользователя Gnuplot (англ.)
Пережогин А.С., Нощенко Д.С. Краткое введение в Gnuplot (рус.)
Philipp K. Janert, Gnuplot in Action. Understanding data with graphs, 2009, Chapter 2, Chapter 13, Source code of examples (англ.)

Основные математические функции

abs(x)абсолютное значение x
acos(x)арккосинус x
asin(x)арксинус x
atan(x)арктангенс x
cos(x)косинус угла x (угол в радианах)
cosh(x)гиперболический косинус угла x (угол в радианах)
erf(x)функция ошибок x
exp(x)экспонента x
inverf(x)обратная функция ошибок x
invnorm(x)inverse normal distribution of x
log(x)натуральный логарифм x
log10(x)десятичный логарифм x
norm(x)число с нормальным гауссовым распределением
rand(x)псевдослучайное число
sgn(x)знак x ("-1" - если x<0; "0" - если x=0; "1" - если x>0)
sin(x)синус угла x (угол в радианах)
sinh(x)гиперболический синус угла x (угол в радианах)
sqrt(x)квадратный корень x
tan(x)тангенс угла x (угол в радианах)
tanh(x)гиперболический тангенс угла x (угол в радианах)