我想展示加速度传感器数据的实时图表。 Kivy是框架,matplotlib应该用于情节。 我可以轻松地在我的应用程序屏幕中集成静态图,但是我没有成功使用matplotlib动画方法。我怎样才能做到这一点?根据我发现的一个例子(不是为kivy制作),以下是我目前的代码。
class FigGraphLive(BoxLayout):
def __init__(self, **kwargs):
super(FigResultPropGraphLive, self).__init__(**kwargs)
fig = Figure(figsize=(3, 1), facecolor='none', dpi=90)
ax = fig.add_subplot(111)
ax.set_axis_bgcolor('none')
ax.spines['bottom'].set_color('white')
ax.spines['top'].set_color('white')
ax.spines['left'].set_color('white')
ax.spines['right'].set_color('white')
xa = ax.xaxis
ya = ax.yaxis
xa.set_tick_params(labelcolor='white')
xa.set_tick_params(color='white')
ya.set_tick_params(labelcolor='white')
ya.set_tick_params(color='white')
self.valx = np.zeros(0)
self.valy = np.zeros(0)
self.valz = np.zeros(0)
self.time = np.zeros(0)
plxax = ax.plot(self.time, self.valx, color='blue', label='X-Axis')
plyax = ax.plot(self.time, self.valy, color='red', label='Y-Axis')
plzax = ax.plot(self.time, self.valz, color='green', label='Z-Axis')
leg = ax.legend()
leg.get_frame().set_alpha(0.4)
self.plxmin = 0.0
self.plxmax = 10.0
self.plx = 0.0
simulation = mplanimation.FuncAnimation(fig, self.updateGraph, blit=False, frames=200, interval=50, repeat=False)
figcanvas = FigureCanvas(fig)
figcanvas.draw()
self.create_plot(figcanvas)
def updateGraph(self):
self.valx = np.append(self.valx, np.random.rand() * 4)
self.valy = np.append(self.valx, np.random.rand() * 4)
self.valz = np.append(self.valx, np.random.rand() * 0.5)
self.plx += 0.05
if self.plx >= self.plxmax - 1.00:
plxax.axes.set_xlim(self.plx - self.plxmax + 1.0, x + 1.0)
plyax.axes.set_xlim(self.plx - self.plxmax + 1.0, x + 1.0)
plzax.axes.set_xlim(self.plx - self.plxmax + 1.0, x + 1.0)
return plxax, plyax, plzax
def create_plot(self, figcanvas):
self.add_widget(figcanvas)
答案 0 :(得分:0)
您可以使用kivy garden中的matplotlib集成示例:https://github.com/kivy-garden/garden.matplotlib
另一个选项是https://github.com/kivy-garden/garden.graph,其中一个动画演示文稿嵌入到init.py文件中。