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, любая помощь приветствуется.
~
Ответы
Ответ 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