12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #!/usr/bin/python3
- """
- This test program utilizes the Python bindings for GTK3 (PyGI or PyGObject).
- The program conists of a window with a button that closes the window when
- clicked. The window also shows a matplotlib plot. The plot is based on this
- example: http://matplotlib.org/examples/pie_and_polar_charts/polar_bar_demo.html
- """
- from gi.repository import Gtk
- from matplotlib.backends.backend_gtk3cairo import FigureCanvasGTK3Cairo as FigureCanvas
- from matplotlib.figure import Figure
- import matplotlib.cm as cm
- import numpy as np
- class MyWindow(Gtk.Window):
- def __init__(self):
- Gtk.Window.__init__(self, title="PyGI / PyGObject Example")
- self.connect("delete-event", Gtk.main_quit)
- self.set_default_size(400, 400)
- self.box = Gtk.Box(spacing=6, orientation=Gtk.Orientation.VERTICAL)
- self.add(self.box)
- self.fig = Figure(figsize=(10,10), dpi=80)
- self.ax = self.fig.add_subplot(111, polar=True)
- N = 20
- theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
- radii = 10 * np.random.rand(N)
- width = np.pi / 4 * np.random.rand(N)
- bars = self.ax.bar(theta, radii, width=width, bottom=0.0)
- for r, bar in zip(radii, bars):
- bar.set_facecolor(cm.jet(r / 10.))
- bar.set_alpha(0.5)
- self.canvas = FigureCanvas(self.fig)
- self.box.pack_start(self.canvas, True, True, 0)
- self.button = Gtk.Button(label="Exit")
- self.button.connect("clicked", self.on_exit_clicked)
- self.box.pack_start(self.button, False, False, 0)
- def on_exit_clicked(self, widget):
- Gtk.main_quit()
- def main():
- win = MyWindow()
- win.show_all()
- Gtk.main()
|