まず、 を取り外しますg('set size 200,100')
。このコマンドは基本的に、gnuplot に x 方向に通常の 200 倍、y 方向に 100 倍のプロットを作成するように指示します。隅にあるプロットのごく一部 (おそらく何も表示されないでしょう)。
次に、純粋な gnuplot で目的を達成する方法を次に示します (実際に要求を適切に解釈しているかどうかをテストしてください)。
set terminal svg size 200,100
set output "filename.svg"
plot '-' w linespoints linestyle 1 pointtype 7 #just picked some linestyles and pointtypes...
1 2
2 4
3 5
e
これを gnuplot-py に入れるには、g('...') ですべてをまとめることができます。これはかなり醜いアプローチですが、うまくいくはずです。gnuplot-py が何を有効なプロット タイプとして認識し、何を認識しないのかはわかりません...そのためには、おそらくソースを掘り下げる必要があるでしょう。
「インラインデータ」も使用しましたが、ポイントを一時ファイルに簡単に書き込むことができます (tempfile
モジュールを使用して、代わりにそれをプロットする方が簡単な場合)。
うまくいくようですd = gp.Data(x,y,with_="linespoints",title="data")
が、約束はしません...
私の推測では、それもうまくいくg.output('filename.svg',terminal='svg',size="200,100")
かもしれませんが、gnuplot-py は、私が思うように動作しないように見えるので、あまり好きではありません。それがうまくいかない場合は、プロットする前に ag('...') に頼る必要があります。
要約すると、これを試してみるとどうなりますか?
#!/usr/bin/env python
from numpy import *
import Gnuplot as gp
import Gnuplot.funcutils
x = (1,2,3)
y=(2,4,5)
g = gp.Gnuplot()
d = gp.Data(x,y,with_="linespoints",title='Graph')
g("set terminal svg size 200,100")
g("set output 'filename.svg'")
g.plot(d)