Обычно при использовании интерактивного gnuplot я делаю:
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"
Однако, когда я пытаюсь сделать то же самое с помощью python с использованием подпроцесса:
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 )
Я получаю следующие ошибки:
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 \
Я потратил много времени, пытаясь выяснить, является ли это проблемой с python, но я выяснил, что это проблема с gnuplot, который по какой-то причине использует escape-символ при вызове из консоли, но не требуется в моем случае.Однако моя проблема остается.Как я могу отобразить данные выше ^^ последовательными строками либо из подпроцесса python, выполнив инструкции, либо создав файл gnu из python и вызвав подпроцесс gnuplot для использования этого файла?
EDIT:
Для тех, кто может когда-либо застрять в этой простой мелочи: как объясняет ниже хороший народ, который поддерживает это сообщество, Python избегает "\", когда вы используете "\".Таким образом, решение было просто:
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 )