Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import serial
- import numpy as np
- from matplotlib.figure import Figure
- from matplotlib.backends.backend_gtk3cairo import FigureCanvasGTK3Cairo as FigureCanvas
- from gi.repository import Gtk
- import time
- import gobject
- class MyWindow(Gtk.ApplicationWindow):
- def __init__(self):
- Gtk.Window.__init__(self, title="Toolbar Example")
- self.set_size_request(700, 500)
- self.box = Gtk.Box(spacing=6, orientation=Gtk.Orientation.VERTICAL)
- self.add(self.box)
- fig = Figure()
- ax = fig.add_subplot(111)
- ax.set_xlim(0, 50)
- ax.set_ylim(0, 20)
- ydata = [0] * 50
- line, = ax.plot(ydata, label='ydata')
- ax.legend()
- f = FigureCanvas(fig)
- self.box.pack_start(f, True, True, 0)
- def update_graph():
- data = ser.readline().rstrip()
- if len(data.split(".")) == 2:
- print data
- ymin = float(min(ydata))-10
- ymax = float(max(ydata))+10
- ax.set_ylim(ymin, ymax)
- ydata.append(data)
- del ydata[0]
- line.set_data(np.arange(len(ydata)), ydata)
- f.draw()
- return True
- gobject.idle_add(update_graph)
- ser = serial.Serial('/dev/ttyACM0', 9600)
- win = MyWindow()
- win.connect("delete-event", Gtk.main_quit)
- win.show_all()
- Gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement