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


Я пытаюсь построить график с помощью gnuplot.У меня есть 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

это дает странную ошибку, как показано ниже:

"сюжет.plt", строка 24: неопределенная переменная: plot

Я что-то делаю wrong.Is можно построить входные данные из разных файлов в одном графике.

3 68

3 ответа:

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

изменения:

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"

to:

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" (что хорошо-это было бы очень запутанно).

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

например

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

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

plot file1.data
replot file2.data