gnuplot: tracer des données à partir de plusieurs fichiers d'entrée dans un seul graphique
J'essaie de tracer un graphique en utilisant gnuplot.J'ai 6 fichiers texte.Chaque fichier texte contient deux colonnes.La première colonne représente le temps en secondes(c'est un nombre à virgule flottante).La deuxième est un numéro de séquence.Je veux tracer le graphique du temps par rapport au numéro de séquence dans un seul graphique pour les six fichiers.J'utilise ce fichier pour le faire.
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"
Où sont mes fichiers:
-
print_1012720
-
print_1058167
-
print_193548
-
print_401125
-
print_401275
print_401276
Il donne une erreur étrange comme ci-dessous:
"terrain.plt", ligne 24: variable indéfinie: plot
Est-ce que je fais quelque chose wrong.Is il est possible de tracer les données d'entrée de différents fichiers dans le même graphique.
3 réponses
Tu es si proche!
Changement:
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"
L'erreur est parce que gnuplot essaie d'interpréter le mot "plot" comme le nom de fichier à tracer, mais vous n'avez assigné aucune chaîne à une variable nommée "plot" (ce qui est bien-ce serait super déroutant).
Vous pouvez trouver que les boucles for De gnuplot sont utiles dans ce cas, si vous ajustez vos noms de fichiers ou vos titres de graphique de manière appropriée.
Par exemple
filenames = "first second third fourth fifth"
plot for [file in filenames] file."dat" using 1:2 with lines
Et
filename(n) = sprintf("file_%d", n)
plot for [i=1:10] filename(i) using 1:2 with lines
Replot est une autre façon d'obtenir plusieurs intrigues à la fois:
plot file1.data
replot file2.data