Normalerweise tue ich das, wenn ich Gnuplot interaktiv verwende:
gnuplot> plot "state_log_6548032.data" using 4 with lines lt -1 lw 0.5 title "X axis" ,\
>"state_log_6548032.data" using 5 with lines lt 1 lw 0.5 title "Y axis" ,\
>"state_log_6548032.data" using 6 with lines lt 2 lw 0.5 title "Z axis"
Wenn ich jedoch versuche, dasselbe von Python aus mit einem Unterprozess zu tun:
gnuplot.write( "plot \"%s\" using 1 with lines lt -1 lw 0.5 title 'X axis' ,\ \n" %filename )
gnuplot.write( "plot \"%s\" using 2 with lines lt 1 lw 0.5 title 'Y axis' ,\ \n" %filename )
gnuplot.write( "plot \"%s\" using 3 with lines lt 2 lw 0.5 title 'Z axis' \n" %filename )
Ich erhalte die folgenden Fehler:
gnuplot> plot "state_log_6548032.data" using 1 with lines lt -1 lw 0.5 title 'X axis' ,\
^
line 0: invalid character \
gnuplot> plot "state_log_6548032.data" using 2 with lines lt 1 lw 0.5 title 'Y axis' ,\
^
line 0: invalid character \
Ich habe viel Zeit damit verbracht, herauszufinden, ob es ein Problem mit Python ist, aber ich habe herausgefunden, dass es ein Problem mit Gnuplot ist, das aus irgendeinem Grund das Escape-Zeichen verwendet, wenn es von der Konsole aufgerufen wird, aber in meinem Fall nicht erforderlich ist. Mein Problem bleibt jedoch bestehen. Wie kann ich die obigen Daten^^ in aufeinanderfolgenden Zeilen entweder aus dem Python-Subprozess heraus plotten, indem ich die Anweisungen per Piping weitergebe, oder indem ich eine Gnu-Datei aus Python heraus erstelle und den Gnuplot-Subprozess aufrufe, um diese Datei zu verwenden?
EDIT:
Für alle, die mit dieser einfachen Sache nicht weiterkommen: Wie die netten Leute, die diese Gemeinschaft am Leben erhalten, weiter unten erklären, entgeht Python das "\", wenn Sie "\" verwenden. Die Lösung war also einfach:
gnuplot.write( "plot \"%s\" using 1 with lines lt -1 lw 0.5 title 'X axis' ,\\\n" %filename )
gnuplot.write( "\"%s\" using 2 with lines lt 1 lw 0.5 title 'Y axis' ,\\\n" %filename )
gnuplot.write( "\"%s\" using 3 with lines lt 2 lw 0.5 title 'Z axis' \n" %filename )
0 Stimmen
@Keith Ich habe python-gnuplot-1.8 mit Debian, aber ich kann keine Dokumentation dazu finden, wie man es benutzt. Es scheint nicht gewartet zu werden. Ich wusste nicht, dass matplotlib, vielen Dank für den Link, das scheint mehr wie das, was ich in erster Linie nach war!