Ich möchte ein Perl-Skript, um eine einfache gnuplot Grafik anzuzeigen. Ich möchte keine Daten in einer Datei speichern, ich möchte ein gnuplot verwenden Einzeiler wie:So rufen Sie einen Gnuplot-Einzeiler von Perl mit system() auf?
gnuplot -p <(echo -e 'plot "-"\n1 1\n2 3\n3 1.7\n4.5 5\ne')
, dass die Punkte zeigt (1, 1), (2, 3), (3 , 1.7) und (4.5, 5).
In einem Perl-Skript, habe ich versucht, Dinge wie
$plotString = "\"<(echo -e 'plot \\\"-\\\"\\n";
$plotString .= "1 1\\n2 3\\n3 1.7\\n4.5 5\\ne')\"";
system('gnuplot -p ' . $plotString);
aber ich bekomme die folgende Fehlermeldung:
-e plot "-"
^
"<(echo -e 'plot "-"\n1 1\n2 3\n3 1.7\n4.5 5\ne')", line 1: invalid command
Dieser Fehler mir überrascht, da die Zeichenfolge zu system()
geben, wie in dem Fehler zitiert Nachricht, ist offensichtlich richtig.
Irgendeine Idee, wie man $plotString
so ändert, system()
würde den gnuplot Befehl richtig interpretieren?
Nebenfrage: Wie zeichnet man das Diagramm with lines
? (Ich konnte den Gnuplot-Einzeiler nicht erreichen, auch außerhalb von Perl.)
Edit: Mein OS ist Ubuntu 16.04.
Willkommen bei [zitiert Hölle] (http://wiki.tcl.tk/1726). Auf den ersten Blick sieht es so aus, als hätten Sie einen zusätzlichen Satz von Anführungszeichen um die Variable herum. Aber Sie haben Dinge in so viele Schichten von Zitaten eingepackt, dass es schwer zu sagen ist. Ich schlage vor, eine einfachere Saite zu versuchen und sich dann sanft darauf aufzubauen. Es ist sehr wahrscheinlich, dass es ein einfacher Fluchtfehler ist. –