使用暂停的python执行操作matplotlib绘图,复制matlab暂停行为

使用暂停的python执行操作matplotlib绘图,复制matlab暂停行为,python,matplotlib,Python,Matplotlib,在Matlab中,不带任何输入的pause命令允许图形操作,并且仅在按下键时执行 在以下示例中,循环运行10次,每次打印后,可以在暂停执行时浏览图形(调整大小、保存、缩放等)。这适用于单步执行各种绘图、做笔记、选择性地保存等 for i = 1:10 plot(i:2*i) pause() end 在Python中,不清楚是否存在等价物(因此这个问题) 例如,阻止执行的一种标准方法似乎是请求输入。但是,这样可以防止操纵打印的图形。此示例每次都会更新绘图,但在代码完全执行完毕之前,您

在Matlab中,不带任何输入的
pause
命令允许图形操作,并且仅在按下键时执行

在以下示例中,循环运行10次,每次打印后,可以在暂停执行时浏览图形(调整大小、保存、缩放等)。这适用于单步执行各种绘图、做笔记、选择性地保存等

for i = 1:10
   plot(i:2*i)
   pause()
end
在Python中,不清楚是否存在等价物(因此这个问题)

例如,阻止执行的一种标准方法似乎是请求输入。但是,这样可以防止操纵打印的图形。此示例每次都会更新绘图,但在代码完全执行完毕之前,您无法对图形执行任何操作

import matplotlib.pyplot as plt
for i in range(1,11):
    x = range(i,2*i+1)
    plt.plot(x) 
    plt.pause(0.1)
    input("Press [enter] to continue.")       
我能想到的唯一方法是在图形上放置一个按钮,基本上使用globals来中断在绘图后开始的连续运行的循环。因为我并不真的希望在图形上有一个随机按钮,所以我在工具栏上添加了一个,它当前会抛出一系列警告,这是实验性的,可能会改变。注意,这段代码可以工作,但它很难看

#基于
#https://stackoverflow.com/questions/52971285/add-toolbar-button-icon-matplotlib
导入matplotlib
matplotlib.rcParams[“工具栏”]=“工具管理器”
将matplotlib.pyplot作为plt导入
从matplotlib.backend\u工具导入工具库
#全局变量
是否暂停=错误
新工具类(工具库):
#image=r“C:\path\to\hiker.png”
#按下按钮时的回调
def触发器(自身、发送方、事件、数据=无):
全局已暂停
是否暂停=错误
图=plt.图()
tm=图canvas.manager.toolmanager
tm.添加工具(“新工具”,新工具)
图canvas.manager.toolbar.add_工具(tm.get_工具(“newtool”),“工具组”)
对于范围(1,11)内的i:
x=范围(i,2*i+1)
ax=plt.plot(x,label=str(i))
ax=plt.gca()
ax.图例()
plt.draw()
_=真吗
#TODO:并且fig必须有效
暂停时:
#打印(已暂停)
plt.暂停(1)
图中的图形如下所示:

请注意,我只运行了10个循环中的3个,并且能够放大,这是标准方法无法做到的。按右上角的“newtool”工具栏按钮取消暂停,并让下一次迭代运行

必须有更好的方法来做到这一点,对吗?我错过什么了吗?也许是一些神奇的rcParams让这一切得以实现

注意,我在Windows上使用Spyder 4.2.0、Python 3.8和matplotlib