我目前正在尝试创建一个程序,该程序可以让我快速消化数据。程序的开始(未显示)接收数据并对其进行处理以使其易于阅读。我遇到的问题涉及到如何创建一个主要函数,该程序将在生成图形并随后将其关闭后继续返回该程序,以便更轻松地查看多个图形。
问题陈述:我想生成一个图形,将其弹出,并在屏幕上显示图形时让程序在后台暂停。然后,当它关闭时,我希望程序恢复并返回到main。
当前障碍:我尝试了多种创建图形的方式,但是我似乎无法做到这两个:(a)正确生成图形,并且(b)恢复程序然后同时返回main我发现“尝试->最终”方法可以帮助我回到主函数,但是现在我的图形不会出现,并且内核崩溃。
代码如下:
import matplotlib.pyplot as plt
class App(cmd.Cmd):
prompt = 'Plot an Individual Pulse (a) or the entire array of data (b)? Just type a or b please: '
def do_a(self, arg):
userchoice= input('Would you like to see (a) Trimmed Data, or (b) another option (which the code is omitted for space)')
if userchoice == "a":
try:
plt.plot(TrimmedVal)
plt.title("All Trimmed Data (Includes 0's)")
plt.ylabel("Number of Particles")
plt.xlabel("Time (s)")
plt.ticklabel_format(style='sci', axis='y', scilimits=(0,0))
plt.draw()
while plt.fignum_exists(1):
plt.pause
return
finally: App().cmdloop()
if __name__ == '__main__':
App().cmdloop()
答案 0 :(得分:1)
您要的是非交互模式下的默认设置,即运行脚本或在交互式解释器中调用plt.ioff()
。
import matplotlib.pyplot as plt
def myfunc():
plt.plot(..)
plt.show()
def main()
myfunc()
print("we're back in main")
main()