我正在写一个Jupyter笔记本,它从传感器读取数据,我想在读取数据时绘制它。当用户单击按钮时,数据应开始打印。 我在Spyder IDE中测试了基本代码,它工作正常,但当我尝试在Jupyter笔记本上实现它时,它工作不正常
这是我的代码。我一直按着按钮,以显示我正在努力实现的目标
import numpy as np
import ipywidgets as widgets
from ipywidgets import interactive
import matplotlib.pyplot as plt
from IPython.display import display
BotGraf = widgets.ToggleButton(value=False,
description='Graficar',
disabled=False,
button_style='info',
tooltip='Description',
icon='chart-line'
)
SalidaEjes = widgets.Output(layout=widgets.Layout(width="75%"))
def FBotGraf(ValBotGraf):
if ValBotGraf == True:
global NumEl
global d
NumEl = np.arange(0, 100)
d = np.zeros(100)
plt.ion()
with SalidaEjes:
fig = plt.figure()
ax = fig.add_subplot(111)
line1, = ax.plot(NumEl, d, 'r-')
plt.show()
i=0
while i < 100:
d[i] = np.random.rand()
line1.set_ydata(d)
fig.canvas.draw()
fig.canvas.flush_events()
plt.show()
i += 1
IBotGraf = interactive(FBotGraf, ValBotGraf = BotGraf)
display(BotGraf)
display(SalidaEjes)
这样,将显示绘图,但绘制原始数据d = np.zeros(100)
,而不更新绘图
但是,如果我尝试在以下单元格中绘制它:
fig = plt.figure()
ax = fig.add_subplot(111)
line1, = ax.plot(NumEl, d, 'r-')
我读了这些问题: Interactive Graph with matplotlib and ipywidget和 Interactive matplotlib using ipywidgets。 但要么没有正确地应用它们,要么没有解决问题
我想这不是一个复杂的问题,但我想不出来
谢谢你的阅读
目前没有回答
相关问题 更多 >
编程相关推荐