所以。。。我一直试图让kivy使用matplotlib绘制实时生成的数据。我以前在TkInter中使用过类似的代码,它的工作方式很有魅力,所以我真的很困惑为什么它在这里不起作用。在
代码如下:import numpy as np
import matplotlib
matplotlib.use('module://kivy.garden.matplotlib.backend_kivy')
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.clock import Clock
import matplotlib.pyplot as plt
class MyApp(App):
def build(self):
box = BoxLayout()
self.fig,self.ax = plt.subplots(1)
self.plt_canvas = self.fig.canvas
box.add_widget(self.plt_canvas)
self.line = self.ax.plot([])[0]
self.i = 0
plt.show()
Clock.schedule_interval(self.update, 1)
return box
def update(self, *args):
self.line.set_xdata(np.arange(self.i))
self.line.set_ydata(np.arange(self.i))
self.i +=1
plt.draw()
MyApp().run()
我想让它画出一条线,每秒1点。但我得到的却是:
好像画布没有重画。我做错什么了?在