Python matplotlib.pyplot动态图刷新实时刷新在同一窗口中实时画图

本示例通过Python的Matplotlib库实现了一个动态更新的图表绘制过程。从初始状态开始,循环增加变量i的值,并实时更新x和y轴的数据,其中y为x的平方。每次迭代都会清空当前图像并绘制新的曲线,最终展示了一个动态变化的二次函数图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码

import matplotlib.pyplot as plt
i=0
x=[]
y=[]
while i<100000:
    plt.clf()  #清除上一幅图像
    x.append(i)
    y.append(i**2)
    plt.plot(x,y)
    i=i+1
    plt.pause(0.01)  # 暂停0.01秒
    plt.ioff()  # 关闭画图的窗口

在这里插入图片描述

### 自动关闭 Matplotlib 窗口 为了实现 `matplotlib.pyplot` 绘制的窗口自动关闭的功能,可以采用多种方法。一种常见的方式是在脚本结束时调用 `plt.close()` 函数来手动关闭所有打开的窗口[^1]。 另一种更自动化的方法是利用 Python 的上下文管理器功能,在绘图完成后立即关闭像: ```python import matplotlib.pyplot as plt import numpy as np def auto_close_plot(): with plt.figure() as fig: ax = fig.add_subplot(111) t = np.arange(0.0, 2.0, 0.01) s = 1 + np.sin(2 * np.pi * t) ax.plot(t, s) auto_close_plot() ``` 需要注意的是上述代码中的 `with plt.figure() as fig:` 句法并不适用于当前版本的 Matplotlib 库;这只是一个概念性的展示。实际应用中应当使用如下方式创建并随后销毁形对象: ```python fig, ax = plt.subplots() t = np.arange(0.0, 2.0, 0.01) s = 1 + np.sin(2*np.pi*t) ax.plot(t, s) plt.show(block=False) # 非阻塞模式显示片 plt.pause(2) # 暂停指定秒数让程序有时间渲染形 plt.close(fig) # 关闭特定的Figure实例 ``` 此段代码通过设置 `block=False` 参数使得 `show()` 方法不会阻止后续语句执行,并配合 `pause()` 和 `close()` 来达到自动关闭的效果[^2]。 对于交互式环境(如 Jupyter Notebook),如果希望在每次运行单元格之后都能自动清除之前的画布,则可以在每个新绘图之前加入 `plt.clf()` 或者 `plt.cla()` 命令用于清理当前 figure 或 axis 上的内容[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菜的成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值