Gnuplot
Основное построение файлов данных
Поиск…
Вступление
Одной из основных полезных функций gnuplot является возможность создания файлов данных . Построение файла данных на самом деле прост с gnuplot , фактически, как только вы открыли программное обеспечение с терминала, вам нужно всего лишь нарисовать команду plot 'file'
чтобы получить автоматический график.
Прежде всего, перед построением графика вы должны быть уверены, что находитесь в том же каталоге, где находится файл данных, иначе вы в конце концов получите warning
.
Синтаксис
- сюжетный файл данных с использованием column_expression со стилем
Выделите один файл данных
Команда Gnuplot по умолчанию plot
(также только p
) участок набора данных со столбцами, в виде data_set.dat
файла ниже.
# Prototype of a gnuplot data set
# data_set.dat
# X - X^2 - 2*X - Random
0 0 0 5
1 1 2 15
1.4142 2 2.8284 1
2 4 4 30
3 9 6 26.46
3.1415 9.8696 6.2832 39.11
4 16 8 20
4.5627 20.8182 9.1254 17
5.0 25.0 10.0 25.50
6 36 12 0.908
Как вы можете видеть, вы можете писать в своем наборе данных в нотации с плавающей запятой. Теперь все готово сделать график данных: набрав только
plot "data_set.dat"
Gnuplot будет производить график в вашем output
назначения. В настройках по умолчанию будут использоваться первые два столбца вашего файла данных, соответственно x и y. Чтобы указать столбцы, которые должны быть построены, using
спецификатор using
plot "data_set.dat" using 2:4
что означает «заархивируйте файл, используя столбец 2, как X, а столбец 4 - как Y». В случае, если ваш набор данных представляет собой трехмерный файл, просто используйте объявление splot
добавьте z-столбец
splot "data_set.dat" using 1:2:3
Существует также другой стиль (см. Документацию по gnuplot или Выбор стиля построения для дополнительной информации) для создания точек. Как уже было сказано, стиль по умолчанию - это point
plot "data_set.dat" using 1:4 with point
который будет отображаться так же, как если бы вы не вводили with point
. Полезным стилем для построения данных является linespoint
которая, очевидно, «линии + точки». НАПРИМЕР:
plot "data_set.dat" using 1:4 with linespoint
# the abbreviated form is completely equivalent:
# p "data_set.dat" u 1:4 w lp
Формы итерации
В случае , если есть несколько столбцов и хотят построить их все в том же графике просто перейти к plot
функции любому аргументу , который вы предпочитаете, разделяя их с ,
:
p "data_set.dat" u 1:2 w lp,\
"data_set.dat" u 1:3 w lp,\
"data_set.dat" u 1:4 w lp
Во всяком случае иногда может быть слишком много столбцов для записи по одному. В этом случае результаты цикла for
итерации очень полезны:
p for [col = 2:4] "data_set.dat" using 1:col w lp
который дает выход
Вкратце, for
итерации увеличивайте переменную в цикле, в этом случае col
, с определенными шагами (если не указано = 1). Например, for [i = 0:6:2]
будет увеличиваться i
от 0 до 6 в 2 этапа: i = 0, 2, 4, 6
. Все значения (начало, остановка и приращение) передаются в целочисленные значения.
* Сетка
Сетка часто полезна при построении набора данных. Чтобы добавить тип сетки
set grid
Построение нескольких файлов данных
Первый метод - Конкатенация строк
Самый простой способ построения нескольких файлов данных - вставить цикл for
внутри команды plot
gnuplot. Предполагая, что у вас есть N
файлов, названных последовательно, т.е.
file_1.dat
file_2.dat
file_3.dat
...
file_N.dat
Выполнение команды
plot for[i = 1:N] "file_".i.".dat"
будет отображать все файлы между file_1.dat
и file_N.dat
в том же графе.
Пример с тремя файлами данных
Таблица наборов данных
X-оси | Y-Axe file_1.dat | Y-Axe file_2.dat | Y-Axe file_3.dat |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 4 | 2 |
3 | 3 | 9 | 6 |
4 | 4 | 16 | 24 |
5 | 5 | 25 | 120 |
команды
set terminal postscript color noenhanced ##setting the term
set output "multiple_files.ps"
set key center ##legend placement
plot [1:5][1:120] \
for [i = 1:3] "file_".i.".dat" \
pointsize 1.3 linecolor i+4 \
title "file\_".i.".dat" \
with linespoint
Цикл начинается с for [i = 1:3] "file_".i.".dat"
и выполняет команду plot
до тех пор, пока не достигнет i = 3
. .i.
это конкатенированное число.
title "file\_".i.".dat"
был написан с помощью \
для того, чтобы символ _
в имени файлов отображался как символ подчеркивания, а не индекс , а noenhanced
specifier является основополагающим для получения этого результата ,
Окончательный результат показан ниже
Второй метод - использование функции sprintf
Другой возможный путь для последующего использования - использовать функцию sprintf
которая работает в основном так же, как C-language sprintf
. Правильный синтаксис из документации gnuplot 5.1
sprintf("format", x, y, ...)
Краткий пример прояснит все сомнения.
file_name(n) = sprintf("file_%d.dat", n)
plot for[i = 1:N] file_name(i) title file_name(i)