python - 如何生成绘图,暂停程序直到图形关闭,然后返回主函数
问题描述
我目前正在尝试创建一个可以让我快速消化数据的程序。程序的开头(未显示)接收数据并对其进行处理以使其易于阅读。我遇到的问题涉及如何创建一个主函数,在生成并随后关闭图形后程序将继续返回该函数,以便更容易地查看一个接一个的多个图形。
问题陈述:我想生成一个图形,让它弹出,并在图形显示在屏幕上时让程序在后台暂停。然后,当它关闭时,我希望程序恢复并返回主程序。
当前的障碍:我尝试了多种不同的方法来创建图形,但我似乎无法同时做到这两种:(a) 正确生成图形,以及 (b) 让程序同时恢复并返回到 main。我发现 'try --> finally' 方法可以帮助我回到主函数,但是现在我的图表不会出现并且内核崩溃了。
代码如下:
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()
解决方案
您要求的是非交互模式下的默认设置,即如果您运行脚本或plt.ioff()
在交互解释器中调用。
import matplotlib.pyplot as plt
def myfunc():
plt.plot(..)
plt.show()
def main()
myfunc()
print("we're back in main")
main()
推荐阅读
- github - github:“下载或克隆”按钮在哪里?
- python - 函数中未检测到 Python 全局变量
- javascript - 通过 Python Selenium WebDriver 使用 javascript 语句查找 Web 元素
- react-native - 初始化 Drawer.Navigator 时,抽屉正在闪烁,尽管在参数中我通过 openByDefault={ false }
- php - 在 htaccess Codeigniter 中重定向 301
- python - 无法连接到redis容器
- ruby - 在使用 #group_by 和 each_with_object 时优化大型 CSV
- python - 从python中的单元格中提取某些文本
- android - 如何获取 io.fabric.ApiKey?
- c# - 将 MongoDb 查询转换为 MongoDriver .Net 核心