2016-08-25 2 views
0

У меня есть один файл, из которого я хочу нарисовать 2 графика на одном графике. Я знаю, как это сделать, если данные для двух графиков разделены, но как это сделать, когда данные для каждого сюжета чередуются с другими?Gnuplot: несколько графиков из одного файла, в котором данные перемежаются

Пример, вот файл данных, то первый столбец показывает, какой участок принадлежит данные, то второй и третий столбец являются оси X и оси Y значения:

# plotnum xaxis yaxis 
1 2 1 
2 3 2 
1 3 2 
2 5 4 

Отсюда я хотел бы обратить 2 участка, участок 1 и участок2, и первые участки (2,1) и (3,2), где во втором участке (3,2) и (5,4)

Как это достичь?

ответ

1

вы можете использовать every ключевое слово, как это:

plot 'test.dat' every ::0::1 using 2:3 w lp, '' every ::2::3 using 2:3 w lp 

Например ::0::1 инструктирует Gnuplot для выбора точки 0 до 1, то есть, первые два («индекс точки» равен нулю основе)

EDIT: в случае, если первый столбец должен определить, какой участок остальные две колонны принадлежат, одним из решений является полагаться на внешние утилиты, такие как Gawk для того, чтобы предварительный фильтр файл:

filter(fname, group)=sprintf("<gawk '$1==%d{print $2,$3}' %s", group, fname) 
plot filter('test.dat', 1) w l 

Здесь gawk уже отфильтровывает только второй и третий столбцы, поэтому не нужно использовать ключевое слово using.

+0

Я думаю, что этот код займет от 0 до 1 и поместит его в один сюжет (строка), а затем поместит строки 2 и 3 во второй сюжет. Но я хочу, чтобы в качестве лица, принимающего решения, были значения первого столбца, к какому сюжету принадлежит эта точка данных. Например, моя первая строка (1, 2, 1) означает, что она принадлежит к первой строке, а точка к графику - (2,1). – Ron

+0

ах, я, должно быть, неправильно понял ваш вопрос - я изменил ответ соответственно ... – ewcz

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