Si no desea que la punta de la flecha entonces es posible probar el estilo de impulsos (con impulsos en lugar de con las líneas) (Si aún desea las líneas en la parte superior, puede trazar dos veces).
Si realmente desea las puntas de flecha, puede ser útil lo siguiente: Utiliza un ciclo for (o géneros) para agregar flechas verticales a un trazado.
Gnuplot script, for loop within or adding to existing plot
Específicamente:
crear un simloop.gp archivo que se parece a lo siguiente:
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
A continuación, cree un archivo simloop.sh que se ve algo así como
#!/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
Luego crea un archivo simulation.gp que se vea tan Mething como lo siguiente:
count = 0;
max = 5;
load "simloop.gp"
set yrange[0:*]
plot "simulation.dat" u 1:2 w l
Asegúrese de que el archivo de shell tenga permisos ejecutables (chmod + wrx simloop.sh), cargar hasta gnuplot y escriba
load "./simulation.gp"
Esto funcionó para mí con el archivo de datos
1 99 0
2 92.7 1
3 100.3 2
4 44.2 0
5 71.23 1
(Para las pruebas que se deshizo de las veces de formato que debe ser capaz de poner de nuevo sin demasiado mucha molestia)
Entonces tuve este gráfico:.
que creo que es más o menos lo que quiere.
Hola, creo que tengo tu pregunta de gnuplot funcionando (al menos en Linux) actualicé mi respuesta. – Tom