Подтвердить что ты не робот

Gnuplot: построение файла с 4 столбцами по оси y

У меня есть файл, содержащий 4 числа (мин, макс, средний, стандартный вывод), и я хотел бы построить его с помощью gnuplot.

Пример:

24 31 29.0909 2.57451
12 31 27.2727 5.24129
14 31 26.1818 5.04197
22 31 27.7273 3.13603
22 31 28.1818 2.88627

Если у меня есть 4 файла с одним столбцом, я могу сделать:

gnuplot "file1.txt" with lines, "file2.txt" with lines, "file3.txt" with lines, "file4.txt" with lines

И он построит 4 кривые. Меня не волнует ось x, она должна быть просто постоянным приращением.

Как я могу рассказать? Кажется, я не могу найти способ иметь 4 кривых с 1 файлом с 4 столбцами, просто имея постоянно увеличивающееся значение x.

Спасибо.

4b9b3361

Ответ 1

Вы можете отображать разные столбцы одного и того же файла:

plot 'file' using 0:1 with lines, '' using 0:2 with lines ...

(... означает продолжение). Несколько примечаний к этой нотации: using указывает, какой столбец для графика, то есть столбец 0 и 1 в первом выражении using, 0-й столбец представляет собой псевдо-столбец, который переводит в текущий номер строки в файле данных. Обратите внимание, что если для using (например, using n) используется только один аргумент, это соответствует выражению using 0:n (спасибо, что указали, что вы вышли из mgilson).

Если ваша версия Gnuplot достаточно недавняя, вы сможете построить все 4 столбца с циклом for:

set key outside
plot for [col=1:4] 'file' using 0:col with lines

Результат:

for-loop plot

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

min max mean std
24 31 29.0909 2.57451
12 31 27.2727 5.24129
14 31 26.1818 5.04197
22 31 27.7273 3.13603
22 31 28.1818 2.88627

и

set key outside
plot for [col=1:4] 'file' using 0:col with lines title columnheader

Результаты в:

for-loop plot with column headers

Ответ 2

Просто добавьте, что вы можете указать приращение в цикле for как третий аргумент. Это полезно, если вы хотите построить каждый n-й столбец.

plot for [col=START:END:INC] 'file' using col with lines

В этом случае он ничего не меняет:

plot for [col=1:4:1] 'file' using col with lines