gpt4 book ai didi

python - 使用 matplotlib 进行实时绘图

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:02 24 4
gpt4 key购买 nike

这是我的代码的最小工作示例。

我正在尝试使用 matplotlib 通过 gui 从用户那里获取一些输入来绘制实时图形。为了构建 gui,我使用了库 easygui

但是,有一个问题:该图在从用户那里获取更新时停止构建,我希望它继续。我在这里遗漏了什么吗?

#!/usr/bin/env python

from easygui import *
from matplotlib.pylab import *
import numpy
import random

n = 0
fig=plt.figure()
x=list()
y=list()
plt.title("live-plot generation")
plt.xlabel('Time(s)')
plt.ylabel('Power(mw)')
plt.ion()
plt.show()
calculated=[random.random() for a in range(40)]
recorded=[random.random() for a in range(40)]
possible=[random.random() for a in range(5)]

plt.axis([0,40,0,10000])
for a in range(0, len(recorded)):
temp_y= recorded[a]
x.append(a)
y.append(temp_y)
plt.scatter(a,temp_y)
plt.draw()
msg = "Change"
title = "knob"
choices = possible
if a>9:
b = (a/10) - numpy.fix(a/10)
if b==0:
choice = choicebox(msg, title, choices)
print "change:", choice

这是 easygui 的下载链接

sudo python  setup.py  install

基于您的 Linux 或操作系统版本。使用以下 link

最佳答案

感谢 J.F.塞巴斯蒂安

import easygui
from Tkinter import Tk
from contextlib import contextmanager

@contextmanager
def tk(timeout=5):
root = Tk() # default root
root.withdraw() # remove from the screen

# destroy all widgets in `timeout` seconds
func_id = root.after(int(1000*timeout), root.quit)
try:
yield root
finally: # cleanup
root.after_cancel(func_id) # cancel callback
root.destroy()

with tk(timeout=1.5):
easygui.msgbox('message') # it blocks for at most `timeout` seconds

关于python - 使用 matplotlib 进行实时绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18739400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com