Содержание


Построение научных и инженерных графиков с помощью GnuPlot

Часть 3. Оформление легенды для графиков, преобразование данных с помощью gnuplot, использование для графического анализа данных

Comments

Серия контента:

Этот контент является частью # из серии # статей: Построение научных и инженерных графиков с помощью GnuPlot

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Построение научных и инженерных графиков с помощью GnuPlot

Следите за выходом новых статей этой серии.

В предыдущей статье цикла расматривались настройки координатных осей, выбор цвета, типа и других атрибутов линий для построения графиков. Были созданы 2 файла: с данными для построения графиков – 1.txt и с командами – scen.plt.

Оформление легенды для графиков

Легендой называется надпись, которая описывает, что изображает конкретная линия данных. В gnuplot легенда называется title (сокращенно ti). Есть два способа указать, что будет написано в легенде:

  • прямое указание: в строку plot включают команду ti "Название";
  • указание через файл данных: в него включают строку, которая начинается с name и дальше, разделяя пробелами, названия столбцов данных. Далее используют ti col – эта команда включенная в строку для построения, например для 3-го столбца читает имена после name и берет второе по счету (т.к. 3-1=2, ведь 1-й столбец это ось X).

Третий путь: можно ничего не писать, для этого применяется notitle, она подавляет вывод легенды для графика.

В листинге 1 рассморен пример оформления легенды. Для этого была земенена строка с plot в файле scen.plt:

Листинг 1. Пример оформления легенды
plot '1.txt'using 1:2 with lines lw 2 lt rgb 'red' ti "ВУЗД90",\ 
'1.txt'using 1:3  with lines lw 2 lt rgb 'green' ti col,\ 
'' u 1:4 w lines lw 2 lt rgb 'blue' ti col

Здесь применен комбинированный метод: в 1-й строке использовано прямое указание, а во 2-й и 3-й названия прочитаны из файла данных.

Для легенды можно задать место расположения, по умолчанию она расположена в правом верхнем углу. Положение задается командой set key. Key (ключ) – это поле, где размещаются легенды (title). Всего возможно 9 предопределенных положений легенды, показанных в таблице 1.

Таблица 1. Положения легенды
leftcenterright
topвверху слевавверху в центревверху справа
centerв центре слевав центрев центре справа
downвнизу слевавнизу в центревнизу справа

Задать положение сверху справа можно следующей командой:

set key top right

Чтобы задать название всего графика, необходимо выполнить команду:

set title "Частотная характеристика СА №___________ \n дата _________2012г.\ 
 подпись _____________"

Здесь:

СА – слуховой аппарат;

\n – по аналогии с языком С означает перевод строки;

\ - продолжение команды на другой строке.

Добавив указанные строки в файле scen.plt перед командой plot и запустив команду, приведенную ниже, получится график с названием (см. рисунок 1).

gnuplot "scen.plt"
Рисунок 1. График с заданным названием
Рисунок 1. График с заданным названием
Рисунок 1. График с заданным названием

Теперь есть возможность вручную вписать номер СА, ставить дату и подпись. В дальнейшем сценарий не переписывается, просто меняются данные в файле 1.txt, либо сценарий запускается с другим файлом 2.txt, 3.txt и т.п.

Преобразование данных средствами GnuPlot, учет статической погрешности измерений

Ранее была рассмотрена идеальная ситуация: измерения проведены на приборах, не обладающих погрешностью, либо в файл были внесены истинные значения. В листинге 2 приведен файл 2.txt с реальными значениями.

Листинг 2. Файл 2.txt с реальными значениями
# СА №1 
name ВУЗД90 ВУЗД60 ВУЗД60+КУ Погрешность(множитель) КНИ 
400	122	113	101	1	6	 
500	122	112	101.5	0.8	12 
630	123.5	113.5	103	1.1	9 
800	127.5	120.5	108	1	4 
1000	130.5	123	111.5	0.8	2 
1250	127	118.5	107	0.7	0.6 
1600	126.5	116.5	105	0.75	2 
2000	124	119.5	109.5	0.95	0.4	 
2500	119	114	103.5	1	0.3 
3150	121	114.5	107	1.1	0.3 
4000	113	104.5	95	1.1	0.8

В файле появились следующие данные:

  • Статическая погрешность прибора. Обнаружено, что прибор обладает погрешностью, и метрологическая служба дала её как множитель, а результаты измеряем в дБ. Необходимо перевести этот множитель в дБ по формуле 20*lg(X) и затем прибавить к результату измерений.
  • Изменен коэффициент нелинейных искажений в %.

Важно: Ранее уже говорилось как строить график, указывая номер столбца, например, 1:3 (по оси Х откладывает столбец 1, по Y столбец 3). Но можно использовать данные из столбцов в формулах. Для этого есть специальное соглашение: запись $5 выдает данные из 5-го столбца, это особого рода переменная. Например,

plot '1.txt'using 1:($2+20*log10($5)) with lines lw 2 lt rgb 'red' ti "ВУЗД90"

Таким образом, мы учли погрешность измерения, используя ее значение из 5-го столбца.

Использование данных из нескольких файлов

Можно строить графики, одновременно используя данные из нескольких файлов. Например, для рассматриваемых слуховых аппаратов имеется так называемое поле допуска. Это особое поле, его наносят на график вместе с измеренными характеристиками и, если характеристика находится внутри этого поля, то аппарат хороший, а если выходит из него, то плохой. Поле допуска едино для всех экземпляров аппарата, поэтому его нужно оформить в отдельном файле – Dopusk.txt (см. Листинг 3).

Листинг 3. Содержимое файла Dopusk.txt
# допуск для ВУЗД90 
#	min	max	 
400	115	127	 
500	118	130		 
630	121	130	 
800	121.5	130.5	 
1000	124.5	133.5	 
1250	121	130	 
1600	120.5	129.5	 
2000	120.5	129.5	 
2500	117.5	126.5	 
3150	115	127	 
4000	113	125

Далее приведен файл с инструкциями – scen1.plt, который сделан на основе рассмотренного ранее файла, но служит для другой цели: предыдущий рисовал график для паспорта, а этот – для визуального контроля параметров СА работником ОТК. Файл scen1.plt приведен в листинге 4.

Листинг 4. Содержимое файла scen1.plt
set terminal  png size 500,350 font 'Verdana, 10' 
set output 'Контроль.png' 
set ylabel "Величина, dB" 
set yrange [90:140] 
set mytics (5) 
set logscale x # логарифмическая шкала для X 
set xrange [300:5000]  # шкала от 300 до 5000 
set xlabel "Частота, Гц" # подпись для оси X 
set xtics ("" 300,"" 400, "500" 500, "" 600, "" 700,"" 800, "" 900, "1k" 1000, 
"1.6k" 1600, "2k" 2000, "" 3000, "" 4000, "5k" 5000, "" 6000, "" 7000, 
"" 8000, "" 9000,"10k" 10000) 
set grid xtics ytics mytics 
set key top right 
plot '1.txt'using 1:($2+20*log10($5)) with lines lw 2 lt rgb 'red' ti "ВУЗД90",\ 
'Dopusk.txt' using 1:2 with line lw 2 lt rgb 'black' title "Поле допуска",\ 
'' using 1:3 with line lw 2 lt rgb 'black' notitle

Для обращения к файлу необходимо выполнить следующую команду:

gnuplot "scen1.plt"

Результат ее выполнения виден на рисунке 2.

Рисунок 2. График с отображением поля допуска
Рисунок 2. График с отображением поля допуска
Рисунок 2. График с отображением поля допуска

Во второй строке команды plot указано, что нужно строить график по данным из другого файла – Dopusk.txt, а в третьей – что не надо выводить легенду для графика. Таким образом, «Поле допуска» написано только раз и используется для всех наборов входных данных.

Необходимо также оценить коэффициент нелинейных искажений (КНИ) аппарата и забраковать его, если он выше 10% на любой частоте. Но построить график КНИ на этом поле нельзя, т.к. он просто не будет виден (нижнее значение Y равно 90, что значительно больше 10!), но можно добавить вторую ось Y, в некоторых случаях это очень удобно. В листинге 5 приведена только изменившаяся часть файла scen1.plt, начиная со строки set xtics.

Листинг 5. Изменения к файлу scen1.plt для построения второй оси Y
set xtics ("" 300,"" 400, "500" 500, "" 600, "" 700,"" 800, "" 900, "1k" 1000, 
"1.6k" 1600, "2k" 2000, "" 3000, "" 4000, "5k" 5000, "" 6000, "" 7000, 
"" 8000, "" 9000,"10k" 10000) 
set y2range [0:25] 
set y2label "КНИ (%)" 
set y2tics ("" 0, "5" 5, "10" 10, "15" 15, "" 20) 
set grid xtics ytics mytics y2tics 
set key top right 
plot '1.txt'using 1:($2+20*log10($5)) with lines lw 2 lt rgb 'red' ti "ВУЗД90",\ 
'Dopusk.txt' using 1:2 with line lw 2 lt rgb 'black' title "Поле допуска",\ 
'' using 1:3 with line lw 2 lt rgb 'black' notitle,\ 
'1.txt' u 1:6 with boxes fill pattern 4 axes x1y2 ti "КНИ"

Параметры для 2-й оси задаются аналогично 1-й, но название оси Y заменено на y2. Добавилась также еще одна строка в команду, где используется ось x1y2 (axes x1y2). На рисунке 3 приведен график с двумя осями Y и построенной диаграммой для коэффициента нелинейных искажений.

Рисунок 3. График с двумя осями Y и диаграммой для коэффициента нелинейных искажений
Рисунок 3. График с двумя осями Y и диаграммой для коэффициента нелинейных искажений
Рисунок 3. График с двумя осями Y и диаграммой для коэффициента нелинейных искажений

Заключение

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


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=859900
ArticleTitle=Построение научных и инженерных графиков с помощью GnuPlot: Часть 3. Оформление легенды для графиков, преобразование данных с помощью gnuplot, использование для графического анализа данных
publish-date=02282013