На главную страницу | Новости | Ссылки | Контакты
установка:
apt-get install gnuplot
отправление в поток:
cat simple.graph | gnuplot
Примеры графиков:
http://gnuplot.sourceforge.net/demo/
http://commons.wikimedia.org/wiki/Category:Gnuplot_diagrams
конвертация:
convert -density 100 outpict.eps outpict.png
-----
Основные команды:
set encoding koi8r - указание кодировки (понимает только koi8r)
set grid - задание сетки
set lmargin 9 (set rmargin 8) - задание отступа графика от края рисунка
set multiplot - построение нескольких графиков
set origin 0,1.3 - положение графика отн-но рисунка
set size 1,0.3 - размер графика (или всего рисунка, если в начале)
set format y2 "%.1f" - формат данных (по оси y2)
set xrange [0:2.5] - диапазон значений
set tics scale 1.0 - высота меток
set xtics 0.5 (set ytics 1) - интервал, через кот. ставить черточки
set mxtics 0.25 -более мелкие черточки
set ylabel "{/Times-Roman-Italic m_y}" -подписать
set xlabel offset 15 - смещение названия оси (оси x вправо)
не работают
set title - без параметров - должен удалять название
set title offset 0,-1
show title
Важные замечания:
1) Для вывода в EPS шрифто можно указывать или так
set terminal postscript eps enhanced "Times-Roman" 25
или так
set terminal postscript eps enhanced font "Times-Roman,25"
вывод:
set output "out.eps"
2) Непосредственно в надписях шрифт надо указывать так:
"{/Times-Roman-Italic m_y}, отн.ед." - если нужен наклонный
3) Легенад или подпись графика:
notitle - вместо title "Название" - чтобы отключить легенду
или тоже самое:
unset key - отключить легенду
set key top center - задать положение легенды [top|center|bottom], [left,center,right]
set key at 2.0 ,1.0 ,0 - задать расположение легенды в координатах x,y,z (единицых данных!)
другие примеры:
set key left bottom Left title 'Legend' box 3
4) тип линий:
with lines (или w lines)
lw 3 (или linewidth 3) - ширина линий
lt rgb "black" (или linetype rgb "black") - цвет линий
5) выбор необходимых столбцов данных из входного файла
using 3:5 - третий и пятый столбец
или using ($1):($2)
причем данные можно преобразовывать:
using ($1/2):($2*1.5)
6) заголовок графика в рамке:
set key left box
=====================================
Пример содержания simple.graph
#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced
set output "res.ps"
set encoding koi8r
set xlabel "Параметр регуляризациии {/Symbol a}, 10^{-n}" font "Helvetica,18"
set ylabel "Величина СКО, отн.ед" font "Helvetica,18"
set yrange [0:1]
set style line 1 lt 1 pt 7
plot "/z/_tmp/plot/res.txt" using 2 title "СКО" with linespoints linestyle 1
если в формате png, то
set terminal png
set output "res.png"
----
15.03.11
Основная проблема у меня возникал при написании русских букв шрифтом Times Roman. Из всех возможных комбинаций рабочей оказалась следующая:
1) задавать шрифт в виде
set terminal postscript enhanced "Times-Roman" 14
(а не "times,14"!)
2) из русских кодировок понимает только
set encoding koi8r
3) можно набрать скрипт в kwrite с кодировкой cp1251, а затем преобразовать его в кодировку koi8-r:
iconv -f cp1251 -t koi8-r 4-2.txt -o 4-2r.txt
4) gnuplot 4-2r.txt
5)
Запускаем скрипт, на выхлопе получаем файл plot.ps который конвертируем в png:
convert -density 600 plot.ps -resize 400 testing.ps
скрипт:
#!/bin/bash
iconv -f cp1251 -t koi8-r $1 -o in_koi.txt
gnuplot in_koi.txt
=====================
из инета
Построение двух графиков на одном рисунке по данным из текстового файла "outfile.txt", содержащего три столбца цифр
Ниже представлен текст из файла figure.plt :
set terminal png
set output "figure.png"
set xlabel "Температура, K"
set ylabel "Давление насыщения водяного пара, Па"
set grid
set xrange [225:280]
set yrange [0:700]
plot "outfile.txt" using 1:2 with lines lt rgb "black" lw 2 title "Над поверхностью воды", \
"outfile.txt" using 1:3 with lines lt rgb "grey" lw 2 title "Над поверхностью льда"
Рассмотрим более подробно настройку внешнего вида графиков, легенды, подписей к осям.
Указание типа создаваемого графического файла
set terminal png
Указание имени создаваемого графического файла
set output "figure.png"
Добавление подписей к осям
set xlabel "Температура, K"
set ylabel "Давление насыщения водяного пара, Па"
Добавление пунктирной сетки
set grid
Указание диапазона отображаемых данных по осям
set xrange [225:280]
set yrange [0:700]
Рисование линий графиков
Команда рисования данных "plot" записывается в одну строку. При необходимости записи в несколько строк, в месте перехода на новую строку ставятся три символа ", \" (запятая, пробел, обратный слеш). В качестве параметров команды указывается имя файла, откуда будут браться данные для построения графика, номера столбцов (певый - значения по оси x, второй - по оси y), тип соединения точек между собой (with lines - линиями, with points - только точки), цвет линий (lt rgb "black" - черный, lt rgb "grey" - серый), толщина линий (lw 2 - два пикселя), подпись в легенде (например, title "Над поверхностью воды" приведет к появлению легенды в углу рисунка с образцом линии и расположенным рядом текстом "Над поверхностью воды").
plot "outfile.txt" using 1:2 with lines lt rgb "black" lw 2 title "Над поверхностью воды", \
"outfile.txt" using 1:3 with lines lt rgb "grey" lw 2 title "Над поверхностью льда"
Полученный рисунок в формате PNG может быть использован для последующего добавления в презентацию.
--
lt - тип линий
lc - цвет линий
цвета и задание стиля:
set style line 1 lt 1 lc rgb "red" lw 3
set style line 2 lt 2 lc rgb "orange" lw 2
set style line 3 lt rgb "yellow" lw 3
set style line 4 lt rgb "green" lw 2
set style line 5 lt rgb "cyan" lw 3
set style line 6 lt rgb "blue" lw 2
set style line 7 lt rgb "violet" lw 3
plot cos(x) ls 1 title 'red'