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:懐かしい響きです。