Python で図を描く
むかーし、PC で BASIC という言語が標準で使えたころ、画面にグラフィック*1を描くのは実に簡単でした。つまり、
10 cls 20 line (0, 0)-(100, 100) 30 circle (50, 50), 50
みたいな感じですね。
いま、仕事でちょっとした図を描きたいのですが、単純なグラフではないので Gnuplot では荷が重いのです。そういえば、wxPython があるじゃないか! と思い立ちましたが、線や丸を描く方法が分かりませんでした。というわけで、ちょっと勉強してみました。
相変わらず GUI には弱いんですが、ま、目的を達成できればいいや。
import wx class DrawPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent, -1) wx.EVT_PAINT(self, self.OnPaint) def OnPaint(self, event=None): dc = wx.PaintDC(self) dc.Clear() dc.SetPen(wx.Pen("BLACK", 1)) dc.DrawLine(0, 0, 200, 50) class TopFrame(wx.Frame): def __init__(self, parent, ID, name): wx.Frame.__init__(self, parent, ID, name) class MyApp(wx.App): def OnInit(self): f = TopFrame(None, -1, "Test 1") DrawPanel(f) f.Show(True) self.SetTopWindow(f) return True if __name__ == '__main__': app = MyApp() app.MainLoop()
*1:懐かしい響きです。