Je suis nouveau sur gnuplot et je suis dérangé par le fait de passer mon argumentation, maintenant j'ai ce script bash simple et un script gnuplot.
dans le script bash plot.sh
je devrais modifier mon fichier, puis l'envoyer au script gnuplot pour le tracer OR je peux modifier mon fichier et simplement envoyer un paramètre (un nombre transmis à partir d'un autre script $ 1) au script gnuplot qui identifie le fichier à tracer, le problème n’est qu’aucune des deux méthodes ne fonctionne, je ne semble pas bien comprendre! de l'aide?
voici mon script bash plot.sh
#!/bin/bash
sed -i 's/ns/;/g' /dev/shm/waitingTime$1.txt
gnuplot -e "filename='/dev/shm/waitingTime$1'" file.gnuplot
Et voici mon script gnuplot appelé file.gnuplot
#!/home/yas/file.gnuplot
set xlabel "start"
set ylabel "Delay"
set autoscale
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
plot<"filename"> using 1:2 w points title "tests"
set terminal postscript portrait enhanced mono dashed lw 1 'Helvetica' 14
set output '/dev/shm/TT.pdf'
pause -1
fin de fichier.gnuplot
Si je comprends bien, vous souhaitez que le graphique apparaisse à l'écran et que alors en ait une copie dans le fichier PDF /dev/shm/TT.pdf
.
Je vois deux problèmes ici:
L'instruction pour le tracé --- vous stockez le nom du fichier dans filename
, alors vous devriez juste dire
plot filename using 1:2 w points title "tests"
sans le <"
... choses.
Si vous voulez le fichier pdf, vous devez ajouter un replot
après le changement de terminal et de fichier de sortie (vérifiez bien que vous pouvez écrire dans le répertoire de destination).
J'ai créé un fichier data.dat
et le fichier file.gnuplot
:
set xlabel "start"
set ylabel "Delay"
set autoscale
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
plot filename using 1:2 w points title "tests"
set terminal postscript portrait enhanced mono dashed lw 1 'Helvetica' 14
set output 'TT.pdf'
replot
pause -1
Et en l'appelant avec:
gnuplot -e "filename='data.dat'" file.gnuplot
J'ai la sortie:
... et le fichier TT.pdf
correspondant.
À propos, au lieu de pause
à la fin, je trouve beaucoup mieux d’ajouter
set terminal wxt persist
au début, et retirez la pause. Le script se terminera naturellement et la fenêtre avec le graphique restera en place jusqu'à ce que vous la supprimiez.