2015-03-16 1 views
2

У меня есть большое количество файлов данных, которые я хочу построить с использованием gnuplot. Файлы находятся в текстовой форме в виде нескольких столбцов. Я хотел использовать gnuplot для построения всех столбцов в заданном файле без необходимости указывать число столбцов, которые должны быть построены, или даже общее количество столбцов в файле, поскольку общее количество столбцов имеет тенденцию варьироваться между файлы, которые у меня есть. Есть ли способ сделать это с помощью gnuplot?Запланировать все столбцы в файле с помощью gnuplot без указания количества столбцов

ответ

5

Существуют различные способы, которые вы можете предпринять, некоторые из них и некоторые менее элегантные.

Возьмем следующий файл data в качестве примера:

1 2 3 
2 4 5 
3 1 3 
4 5 2 
5 9 5 
6 4 2 

Это имеет 3 колонки, но вы хотите, чтобы написать общий сценарий без предположения о какой-либо конкретный номер. То, как я бы об этом было бы использовать awk, чтобы получить число столбцов в файле в скрипте GNUPLOT по system() вызова:

N = system("awk 'NR==1{print NF}' data") 
plot for [i=1:N] "data" u 0:i w l title "Column ".i 

enter image description here

сказать, что вы не хотите использовать system() вызов и знать, что число столбцов всегда будет ниже определенного максимума, например, 10:

plot for [i=1:10] "data" u 0:i w l title "Column ".i 

Тогда Gnuplot будет жаловаться на несуществующие данные, но будет строить colu mns от 1 до 3, тем не менее.

+1

В последних версиях Gnuplot есть команда 'stats', поэтому, если вы запустите' stats 'data' nooutput', переменная 'STATS_columns' будет содержать количество столбцов, в этом случае 3. – Thor

+1

@Thor 'STATS_columns' доступен с 5,0 – Christoph

+0

@Christoph Спасибо за разъяснение, фактически работая' stats' была первым, что я сделал перед отправкой ответа, и я не видел ничего, относящегося к номеру столбца (я запускаю 4.6. 4). – Miguel

 Смежные вопросы

  • Нет связанных вопросов^_^