如何在gtk3中创建实时更新的matplotlib图 [英] How to create a live updating matplotlib graph in gtk3
本文介绍了如何在gtk3中创建实时更新的matplotlib图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将实时绘图应用程序放入一个不错的gtk3程序中,到目前为止,我已经知道了,但是它没有显示窗口.我想念什么?预先感谢!
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
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)
while True:
ydata.append(10)
line.set_data(np.arange(len(ydata)), ydata)
f.draw()
win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
解决方案
使用canvas.draw()
或fig.canvas.draw()
更新绘图.
I wanted to put my live plotting app into a nice gtk3 programm and so far I got this but it doesn't show a window. What am I missing? Thanks in advance!
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
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)
while True:
ydata.append(10)
line.set_data(np.arange(len(ydata)), ydata)
f.draw()
win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
解决方案
Use canvas.draw()
or fig.canvas.draw()
to update the plot.
See the matplotlib for more detail.
这篇关于如何在gtk3中创建实时更新的matplotlib图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文