Подтвердить что ты не робот

Gnuplot: отображение данных из нескольких входных файлов в одном графике

Я пытаюсь построить график с использованием gnuplot.I имеет 6 текстовых файлов. Каждый текстовый файл содержит две колонки. Первый столбец представляет время в секундах (это число с плавающей запятой). Второй - порядковый номер. Я хочу для построения графика времени по порядковому номеру в одном графике для всех шести файлов. Я использую этот файл для этого.

set terminal png
set output 'akamai.png'

set xdata time
set timefmt "%S"
set xlabel "time"

set autoscale

set ylabel "highest seq number"
set format y "%s"

set title "seq number over time"
set key reverse Left outside
set grid

set style data linespoints

plot "print_1012720" using 1:2 title "Flow 1", \
plot "print_1058167" using 1:2 title "Flow 2", \
plot "print_193548"  using 1:2 title "Flow 3", \ 
plot "print_401125"  using 1:2 title "Flow 4", \
plot "print_401275"  using 1:2 title "Flow 5", \
plot "print_401276"  using 1:2 title "Flow 6"

Где мои файлы

print_1012720
print_1058167
print_193548
print_401125
print_401275
print_401276

Это дает странную ошибку, как показано ниже. "plot.plt", строка 24: undefined variable: plot

Я делаю что-то неправильно. Возможно ли построить данные из разных файлов на одном графике. Я новичок в gnuplot, любая помощь приветствуется.

~

4b9b3361

Ответ 1

Ты так близко!

Изменить:

plot "print_1012720" using 1:2 title "Flow 1", \
plot "print_1058167" using 1:2 title "Flow 2", \
plot "print_193548"  using 1:2 title "Flow 3", \ 
plot "print_401125"  using 1:2 title "Flow 4", \
plot "print_401275"  using 1:2 title "Flow 5", \
plot "print_401276"  using 1:2 title "Flow 6"

в

plot "print_1012720" using 1:2 title "Flow 1", \
     "print_1058167" using 1:2 title "Flow 2", \
     "print_193548"  using 1:2 title "Flow 3", \ 
     "print_401125"  using 1:2 title "Flow 4", \
     "print_401275"  using 1:2 title "Flow 5", \
     "print_401276"  using 1:2 title "Flow 6"

Ошибка заключается в том, что gnuplot пытается интерпретировать слово "plot" в качестве имени файла для построения, но вы не назначили никаких строк переменной с именем "plot" (что хорошо - это было бы очень запутанно).

Ответ 2

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

например.

filenames = "first second third fourth fifth"
plot for [file in filenames] file."dat" using 1:2 with lines

и

filename(n) = sprintf("file_%d", n)
plot for [i=1:10] filename(i) using 1:2 with lines

Ответ 3

replot - это еще один способ сразу получить несколько графиков:

plot file1.data
replot file2.data