私は gnuplot-py にあまり詳しくありませんが、コマンドを実行するときにターミナルにコマンドを書き込む場合は、シェルのリダイレクトを使用できます。
python myPythonScriptWithGnuplot.py > commandfile.gp #redirect stdout
python myPythonScriptWithGnuplot.py 2> commandfile.gp #redirect stderr
もちろん、Python から端末に他のことを書き込んでいる場合、これは役に立ちません...
ただし、gnuplot-py は一時 FIFO を介してデータを gnuplot に送信することに注意してください (とにかくそう思います)。したがって、データをプロットしている場合 (たとえば、リスト、numpy 配列など... のような関数ではありません"sin(x)"
)、データをプロットしようとすると、FIFO がシステムから削除され、プロット コマンドが失敗する可能性があると不平を言います。 'データファイルが見つかりません。
編集
ソースを(簡単に)見た後、いくつかのオプションがあるようです。最初のオプション:debug=1
コンストラクターに渡します (既にこれを行っている可能性があります)。これにより、コマンドが標準エラーに書き込まれます。少し (または多く) のシェル マジックを使用すると、さまざまな出力ストリームを分離できます。これは、bash で動作する端末に出力を残しながら、コマンドから stderr をファイルに入れるレシピです (私は bash 4.1.5 を使用していますが、これはしばらく前からあったと確信しています)。
((command 3>&1 1>&2 2>&3 ) | tee command_stderr.log ) 3>&1 1>&2 2>&3
#swap stderr/out
#tee puts data in output file and to terminal
#swap stderr/stdout again.
(誰かがそれを知っていれば、この出力ストリームのスワッピングを行うためのよりクリーンな方法を見たいと思います...)
Gnuplot
または、コンストラクターにファイル名を渡すこともできます。これにより、コマンドがそのファイルに書き込まれます。私が知る限り、コマンドをファイルと gnuplot パイプに書き込む方法はありません。ただし、いつでも複数のGnuplot
インスタンスを起動し、メイン インスタンスを介してコマンドをファイルに書き込むことができます。その後、プロット コマンドを書き込むたびに、2 番目のインスタンスにload "filename"
. もちろん、この方法を使用する場合は、おそらくデータがinline
d であることを指定する必要があります。
3 番目のオプションは、gnuplot-py を放棄して pyGnuplot を支持することです。なぜなら、私はまだ pyGnuplot を積極的に開発しているためです。その後、何かがうまくいかない場合、または機能を追加したい場合は、私に知らせてください。 )