Вопрос по – Как построить определенные строки в GNUplot

12

У меня есть файл с двумя столбцами, который содержит 1000000 записей, то есть 1000000 строк, однако я не хочу отображать все данные, я просто хочу отображать точки каждые 100 строк? Как это сделать в gnuplot? Кроме того, возможно ли указать некоторые конкретные строки для построения в gnuplot?

Вы можете использовать awk в gnuplot. Рад объяснить, если вы объясните свою проблему более подробно. tommy.carstensen

Ваш Ответ

1   ответ
26

У вас есть как минимум два варианта здесь. Сначала ознакомьтесь с документацией дляhelp datafile every

plot 'datafile' every 100 using 1:2 

Другой вариант - использовать псевдостолбец 0 (help datafile using pseudo) в сочетании с троичным оператором (help ternary) и знание того, что gnuplot молча игнорирует неопределенные числа для фильтрации строк:

plot 'datafile' u ( ((int($0)%100)==0)? $1 : 1/0 ):2

Вы можете сделать это немного проще для понимания, если используете макрос:

set macro
line_number='int($0)'
plot 'datafile' u ( ( ( @line_number % 100 ) == 0 ) ? $1 : 1/0 ) : 2

Обратите внимание, что я включаю вторую только потому, что вы можете (в принципе) использовать ее для выбора очень странных номеров строк из файла данных (например, 1 100 000 100 000), которые вы не можете использовать, например, каждый.

plot 'datafile' u ( ((@line_number == 1 || @line_number == 100 || @line_number == 1000 ) $1:1/0)):2

Также смотрите ответы наэтот вопрос

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы