На главную страницу | Новости  |  Ссылки | Контакты

Spyphy Farnsworth
Квантовая реальность. Кибернетика. Искусственный интеллект


gnuplut - бесплатное ПО для быстрого построения графиков в Linux


установка:

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'





galaxy