首先,刪除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,因爲它似乎並沒有表現的我認爲它應該。如果這不起作用,您需要在繪圖之前使用g('...')。
總之,如果你嘗試這樣會發生什麼?
#!/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)
你是什麼意思「尺寸固定」?什麼應該是「透明」(線,點)? – mgilson