2011-10-31 9 views
2

私はデータを実行してグラフを作成するスクリプトを作成しています。それは簡単で完了です。残念ながら、私が使用しているグラフモジュールでは、グラフをpdf形式でしか作成しません。私はグラフをインタラクティブウィンドウに表示させたいと思っています。TKinterウィンドウにグラフを作成しますか?

PyXで作成したグラフをTKinterウィンドウに追加するか、またはpdfをフレームなどに読み込む方法はありますか?

答えて

3

Python出力をビットマップに変換して、Tkinterアプリケーションに組み込む必要があります。 PyX出力をPILイメージとして直接取得する便利な方法はありませんが、pipGSメソッドを使用してビットマップを準備し、PILを使用してロードすることができます。ここでは最小限の例を示します。

import tempfile, os 

from pyx import * 
import Tkinter 
import Image, ImageTk 

# first we create some pyx graphics 
c = canvas.canvas() 
c.text(0, 0, "Hello, world!") 
c.stroke(path.line(0, 0, 2, 0)) 

# now we use pipeGS (ghostscript) to create a bitmap graphics 
fd, fname = tempfile.mkstemp() 
f = os.fdopen(fd, "wb") 
f.close() 
c.pipeGS(fname, device="pngalpha", resolution=100) 
# and load with PIL 
i = Image.open(fname) 
i.load() 
# now we can already remove the temporary file 
os.unlink(fname) 

# finally we can use this image in Tkinter 
root = Tkinter.Tk() 
root.geometry('%dx%d' % (i.size[0],i.size[1])) 
tkpi = ImageTk.PhotoImage(i) 
label_image = Tkinter.Label(root, image=tkpi) 
label_image.place(x=0,y=0,width=i.size[0],height=i.size[1]) 
root.mainloop() 
関連する問題