Python 2.7 如何在kivy中创建实时图形?
我想用kivy创建一个实时图形。我怎样才能做到这一点?我是新来的基维。请帮帮我 中有一个图形小部件。你可以在kivy's中阅读有关使用花园小部件的内容。我还尝试在kivy中制作一个实时图形 尤斯考普 我从Youscope开始。youscope的演示可以在下面的youtube视频中看到 源代码如下: 它是用Pygame编写的,使用wave音频文件作为输入源,但也可以使用其他源(例如串行数据或计算曲线) Youscope的问题是我无法用它为Android构建APK。我曾尝试为android安装python子集,但在构建时总是收到错误消息。(不知道出了什么问题。) 所以我决定将Youscope代码移植到Kivy,因为有了Buildozer,我可以制作Android APK。(尚未测试过如何构建图形应用程序,但这应该可以正常工作。) Youscope和Kivy 这幅画在kivy中的运行速度似乎与原始代码一样快,但目前我仍在重新绘制曲线。但是我认为画图应该快一点,也许计算点的时间太长了。 我想我应该检查一个WAV文件作为输入,如果它更快 时钟时间间隔(Kivy)与游戏循环(Pygame) Kivy的源代码与pygame代码非常相似,但Kivy中没有带有while循环的游戏循环。 在Kivy中,您正在使用时钟回调。计划间隔(回调,时间单位为秒)(请参阅)以更新/绘制屏幕 使用帧缓冲区进行绘图 对于绘图,需要使用添加到画布的帧缓冲区。看 曲线是从左到右逐点绘制的。 重画是指我在帧缓冲区上绘制第一条曲线(我使用计算出的正弦波),当我到达屏幕的右边缘后,我开始用新曲线从左侧再次绘制 现在仍然需要清除之前绘制的曲线。您可以在这里重新绘制整个屏幕,但这可能比逐点删除旧线条要慢 这里的困难是恢复旧曲线下面的背景色。看起来我用错了像素的颜色,但我不确定出了什么问题 获取用于刷新屏幕的像素颜色() 使用Framebuffer.get_pixel_color(wx,wy)(需要Kivy 1.8.0)可以在rgba中获取像素的颜色,但这无法正常工作。也许这是一个更新问题,但我不确定 使用黑色像素(不使用get_pixel_color)清除是可行的,但会删除背景网格。定义绘图 e、 g 定义图 e、 g 更新图形并更新x轴: e、 g 叫钟 e、 g 并添加小部件:Python 2.7 如何在kivy中创建实时图形?,python-2.7,graph,kivy,Python 2.7,Graph,Kivy,我想用kivy创建一个实时图形。我怎样才能做到这一点?我是新来的基维。请帮帮我 中有一个图形小部件。你可以在kivy's中阅读有关使用花园小部件的内容。我还尝试在kivy中制作一个实时图形 尤斯考普 我从Youscope开始。youscope的演示可以在下面的youtube视频中看到 源代码如下: 它是用Pygame编写的,使用wave音频文件作为输入源,但也可以使用其他源(例如串行数据或计算曲线) Youscope的问题是我无法用它为Android构建APK。我曾尝试为android安装pyt
b.add_widget(graph)
我希望我没有忘记任何事情。它提供了kivy Garden的运行图。它支持直方图吗?我不这么认为。不过,今年我们可能会在matplotlib支持中有一个gsoc项目。
graph = Graph(
xlabel='Iteration',
ylabel='Value',
x_ticks_minor=1,
x_ticks_major=5,
y_ticks_major=1,
y_grid_label=True,
x_grid_label=True,
padding=5,
xlog=False,
ylog=False,
x_grid=True,
y_grid=True,
ymin=0,
ymax=11,
**graph_theme)
def update_xaxis(self,*args):
global graph
global cnt
graph.xmin = cnt - 50
graph.xmax = cnt
def update_points(self, *args):
global i
global MYLIST
global cnt
#self.plot.points = [(i,i)]
self.plot.points = [z for z in MYLIST]
Clock.schedule_interval(self.update_points, 1/60.)
Clock.schedule_interval(self.update_xaxis, 1/60.)
b.add_widget(graph)