0

Python内からGnuplotを使用するためにGnuplotPyインターフェースを使用しています。GnuplotPy呼び出しに改行があると、GnuplotPyが文句を言うことがわかりました。例えば:

import Gnuplot
gp = Gnuplot.Gnuplot(persist = 1)
gp('set title "My plot title is very long, \n so it needs two lines"')
...
gp.plot(...)

上記のコードは、実行中に次のエラーをスローします。

gnuplot> so it needs two lines
     ^
     line 0: invalid command

そして、上記のコードは、タイトルの最初の行のみを表示するプロットを出力しますが、それ以外の点ではプロットは正しいです。行のを削除する\ngp('set title...')、エラーはなくなります。


このGnuplotチュートリアルによると、これ\nは確かにGnuplotで複数行のラベルを作成する有効な方法です。たとえば、チュートリアルではこれを行うことを提案しています。

set title "This is the title\n\nThis is the x2label"
4

1 に答える 1

4

gnuplotとpythonはどちらも、2文字のシーケンス(\n)を改行として受け取ります。何が起こっているのかというと、Pythonがあなた\nを傍受し、gnuplotが窒息する文字通りの改行に変換しているということです。生の文字列を使用してみてください:

gp(r'set title "My plot title is very long, \n so it needs two lines"')
#  ^ The leading r makes it a raw string.

これにより、Pythonが改行をインターセプトするのを防ぐことができます。

于 2012-11-27T07:10:03.077 に答える