2015-07-29 4 views
0

У меня есть файл, который я рисую с помощью gnuplot. Мои данные выглядит следующим образом:GNUPlot: график каждого блока данных на новом графике («для каждого блока данных»)

x,y1,y2 
0,0,0 
1,0.0,0.1 
1,0.1,0.15 
1,0.3,0.2 
    ... etc 

       2 blank lines -> new block 

0,0,0 
0,0,0  (just example data) 
0,0,0 
    ... etc 


       2 blank lines -> new block 
0,0,0 
0,0,0 
0,0,0 
    ... etc 

     ... etc (more blocks) 

Если я запускаю команду: участок «FILE.CSV» с помощью 1: 2, а затем все блоки появляются на том же графике. У меня около 1000 блоков, поэтому, очевидно, это дает что-то нечитаемое.

Как я могу построить все блоки на разных графиков? Похоже на цикл «для каждого блока данных» или что-то в этом роде?

Возможные Частичный ответ

я добился прогресса в этом, используя GNUPLOT для цикла. На самом деле это не может быть особенно хорошим методом, и теперь я застрял, поскольку не могу подсчитать количество «блоков данных» в моем файле.

Это то, что я до сих пор:

NMAX=3 # How do I know what this should be? 

do for [n=0:NMAX] { 
    ofname=sprintf("%d.png", n) 
    set output ofname 
    plot 'timeseries.csv' index n using 1:2, 'timeseries.csv' index n using 1:3 with lines 
} 

Возможно, это полезно? На данный момент я не знаю, как установить NMAX автоматически.

Дальнейшее развитие

NMAX можно установить с помощью команды: statsstats 'datafile.csv' затем NMAX=STATS_blocks.

Может быть лучший способ.

ответ

1

Этот вопрос помог мне: Count number of blocks in datafile

Мой код:

stats datafile 
NMAX=STATS_blocks 

do for [n=0:NMAX] { 
    ofname=sprintf("%d.png", n) 
    set output ofname 
    plot 'timeseries.csv' index n using 1:2, 'timeseries.csv' index n using 1:3 with lines 
} 
Смежные вопросы