Se non si desidera che la punta della freccia allora si potrebbe provare lo stile di impulsi (con impulsi piuttosto che con le linee) (Se vuoi ancora le linee in alto, puoi tracciare due volte).
Se si desidera realmente le punte delle frecce, quanto segue potrebbe essere utile: Utilizza un ciclo for (o tipi) per aggiungere frecce verticali a un grafico.
Gnuplot script, for loop within or adding to existing plot
In particolare:
creare un simloop.gp file che è simile il seguente:
count = count+1
#save the count to count.gp
system 'echo '.count.' > count.gp'
#load the simloop shell
system "./simloop.sh"
#draw the arrow
load 'draw_arrow.gp'
if(count<max) reread
quindi creare un file di simloop.sh che assomiglia in modo
#!/bin/bash
#read the count
count=$(awk -F, '{print $1}' count.gp)
#read the file
xcoord=$(awk -v count=$count -F, 'BEGIN{FS=" ";}{ if(NR==count) print $1}' simulation.dat)
ycoord=$(awk -v count=$count -F, 'BEGIN{FS=" "}{ if(NR==count) print $2}' simulation.dat)
dir=$(awk -v count=$count -F, 'BEGIN{FS=" "}{ if(NR==count) print $3}' simulation.dat)
#choose the direction of the arrow
if [ \"$dir\" == \"0\" ]; then
echo '' > draw_arrow.gp
fi
if [ \"$dir\" == \"1\" ]; then
echo 'set arrow from ' $xcoord' ,0 to '$xcoord','$ycoord' head' > draw_arrow.gp
fi
if [ \"$dir\" == \"2\" ]; then
echo 'set arrow from '$xcoord',0 to '$xcoord','$ycoord' backhead' > draw_arrow.gp
fi
Quindi creare un file simulation.gp che sembra così mething in questo modo:
count = 0;
max = 5;
load "simloop.gp"
set yrange[0:*]
plot "simulation.dat" u 1:2 w l
assicurarsi che il file shell ha i permessi eseguibili (chmod + WRX simloop.sh), caricare gnuplot e digitare
load "./simulation.gp"
Questo ha funzionato per me con il file di dati
1 99 0
2 92.7 1
3 100.3 2
4 44.2 0
5 71.23 1
(Per le prove mi sono liberato del tempo di formattazione dovrebbe essere in grado di mettere indietro senza troppo troppi problemi)
poi ho avuto questo grafico:.
che credo è più o meno ciò che si desidera.
Ciao, penso di aver risolto la mia domanda gnuplot (almeno su linux) Ho aggiornato la mia risposta. – Tom