Próbuję wykreślić wykres za pomocą gnuplot. Mam sześć plików tekstowych. Każdy plik tekstowy zawiera dwie kolumny. Pierwsza kolumna przedstawia czas w sekundach (liczba zmiennoprzecinkowa). Drugi to numer kolejny. Chcę wykreślić wykres czasu w funkcji numeru sekwencyjnego na jednym wykresie dla wszystkich sześciu plików. W tym celu używam tego pliku.
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"
Gdzie są moje pliki:
print_1012720
print_1058167
print_193548
print_401125
print_401275
print_401276
Daje dziwny błąd, jak poniżej:
"plot.plt", wiersz 24: niezdefiniowana zmienna: plot
czy robię coś źle? Czy możliwe jest wykreślenie danych wejściowych z różnych plików na tym samym wykresie?
Odpowiedzi:
Jesteś tak blisko!
Zmiana
do
Błąd pojawia się, ponieważ gnuplot próbuje zinterpretować słowo „plot” jako nazwę pliku do plotowania, ale nie przypisałeś żadnych ciągów do zmiennej o nazwie „plot” (co jest dobre - byłoby to bardzo zagmatwane).
źródło
Może się okazać, że pętle for gnuplot są przydatne w tym przypadku, jeśli odpowiednio dostosujesz nazwy plików lub tytuły wykresów.
na przykład
i
źródło
replot
To kolejny sposób na uzyskanie wielu działek naraz:
źródło