web-dev-qa-db-fra.com

passage de fichier de script bash à script gnuplot

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

5
yasmink

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:

  1. 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.

  2. 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:

enter image description here

... 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.

2
Rmano