Сюжет 10 линий и 1000 значений на gnuplot - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть файл данных с 10 строками по 1000 значений в каждой строке, и я пытаюсь построить эти значения с помощью этого сценария

#!/usr/bin/gnuplot -persist

 plot "data.dat" using [1:1000] title "" with lines

, но я получаю эту ошибку

plot "data.dat" using [1:1000] title "" with lines
                      ^
"./plot.sh", line 3: invalid expression 

Как я могу указать интервал от первого значения до значения 1000? Я не могу установить разные случайные значения для каждой строки?

1 Ответ

0 голосов
/ 23 декабря 2018

Как отметил @vaettchen, gnuplot хочет получить данные в столбцах, а построение строк не является простым делом.Так что лучше всего было бы, если ваши данные были транспонированы.К сожалению, у gnuplot нет функции транспонирования данных.Таким образом, вы должны использовать внешние инструменты для транспонирования ваших данных.

Хотя, если ваши данные состоят из 10 строк с 1000 значениями в каждой, то есть строгой матрицы 10x1000, вы можете сделать что-то только с gnuplot (см. Ниже).Однако, если ваши данные не являются строгой матрицей, например, в одной строке больше или меньше значений или одно значение отсутствует, метод, описанный ниже, не будет работать.

Следующий пример (всего 5 строк по 7 значений в каждой) иллюстрируетпостроение столбцов и построение строк.

### plotting columns and rows
reset session
set colorsequence classic

$Data <<EOD
11  12  13  14  15  16  17
21  22  23  24  25  26  27
31  32  33  34  35  36  37
41  42  43  44  45  46  47
51  52  53  54  55  56  57
EOD

# get the number of rows
stats $Data u 0 nooutput
RowCount = STATS_records

# do the plot
set multiplot layout 1,2
    set title "Plotting columns"
    set xlabel "Row no."
    set xtics 1
    # plot all columns from 1 to *(=autodetection)
    plot for [i=1:*] $Data u ($0+1):i w lp pt 7 not

    set title "Plotting rows"
    set xlabel "Column no."
    # plot all rows
    plot for [i=0:RowCount-1] $Data matrix u ($1+1):0 every :::i::i w lp pt 7 not
unset multiplot
### end of code

Что приводит к:

enter image description here

...