循环、清除并在同一图形上显示不同的图

2023-11-30

我想使用循环查看绘图如何随不同值变化。我想在同一个情节上看到它。但我不想在图中保留之前的情节。在 MATLAB 中,可以通过创建一个图形并在同一个图形上进行绘图来实现这一点。当循环结束时关闭它。

Like,

fh = figure();
%for loop here
%do something with x and y    
subplot(211), plot(x);
subplot(212), plot(y); 
pause(1)
%loop done
close(fh);

我无法在 matplotlib 中找到与此等效的内容。通常所有的问题都与在同一个图上绘制不同的系列有关,这在 matplotlib 上似乎很自然,通过使用绘制多个系列plt.plot()然后最后使用plt.show()。但我想刷新一下剧情。


在 matplotlib 中创建动画本质上有两种不同的方法

交互模式

打开交互式更多功能是使用plt.ion()。即使这将创建一个情节show尚未被调用。可以通过调用更新情节plt.draw()或者对于动画,plt.pause().

import matplotlib.pyplot as plt

x = [1,1]
y = [1,2]

fig, (ax1,ax2) = plt.subplots(nrows=2, sharex=True, sharey=True)
line1, = ax1.plot(x)
line2, = ax2.plot(y)
ax1.set_xlim(-1,17)
ax1.set_ylim(-400,3000)
plt.ion()

for i in range(15):
    x.append(x[-1]+x[-2])
    line1.set_data(range(len(x)), x)
    y.append(y[-1]+y[-2])
    line2.set_data(range(len(y)), y)

    plt.pause(0.1)

plt.ioff()    
plt.show()

函数动画

Matplotlib 提供了一个动画子模块,这简化了动画的创建,还可以轻松保存它们。与上面相同,使用FuncAnimation看起来像:

import matplotlib.pyplot as plt
import matplotlib.animation

x = [1,1]
y = [1,2]

fig, (ax1,ax2) = plt.subplots(nrows=2, sharex=True, sharey=True)
line1, = ax1.plot(x)
line2, = ax2.plot(y)
ax1.set_xlim(-1,18)
ax1.set_ylim(-400,3000)


def update(i):
    x.append(x[-1]+x[-2])
    line1.set_data(range(len(x)), x)
    y.append(y[-1]+y[-2])
    line2.set_data(range(len(y)), y)

ani = matplotlib.animation.FuncAnimation(fig, update, frames=14, repeat=False)   
plt.show()

以改变频率及其功率谱的方式制作正弦波动画的示例如下:

import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np

x = np.linspace(0,24*np.pi,512)
y = np.sin(x)

def fft(x):
    fft = np.abs(np.fft.rfft(x))
    return fft**2/(fft**2).max()

fig, (ax1,ax2) = plt.subplots(nrows=2)
line1, = ax1.plot(x,y)
line2, = ax2.plot(fft(y))
ax2.set_xlim(0,50)
ax2.set_ylim(0,1)

def update(i):
    y = np.sin((i+1)/30.*x)
    line1.set_data(x,y)
    y2 = fft(y)
    line2.set_data(range(len(y2)), y2)

ani = matplotlib.animation.FuncAnimation(fig, update, frames=60, repeat=True)  
plt.show()

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环、清除并在同一图形上显示不同的图 的相关文章

  • 使用 Marshmallow 中的数据更新行 (SQLAlchemy)

    我正在使用 Flask Flask SQLAlchemy Flask Marshmallow marshmallow sqlalchemy 尝试实现 REST api PUT 方法 我还没有找到任何使用 SQLA 和 Marshmallow
  • 更改 Inkscape 的 Python 解释器

    在使用 Inkscape 时 我不断收到错误 这似乎意味着未满足 python 2 vs 3 的期望 尽管我已经安装了它们 例如 当我尝试从模板生成新文档时 我得到 Traceback most recent call last File
  • 如何配置散景图以具有响应宽度和固定高度

    我使用通过组件功能嵌入的散景 实际上我使用 plot sizing mode scale width 它根据宽度进行缩放并保持纵横比 但我想要一个响应宽度但固定或最大高度 这怎么可能实现呢 有stretch both and scale b
  • 使用 GeoDjango 在坐标系之间进行转换

    我正在尝试将坐标信息添加到我的数据库中 添加django contrib gis支持我的应用程序 我正在写一个south数据迁移 从数据库中获取地址 并向 Google 询问坐标 到目前为止 我认为我最好的选择是使用geopy为了这 接下来
  • 使用 python 通过搜索端点从 Spotify API 获取曲目

    因此 我尝试使用 API 的搜索端点进行搜索 从而从 Spotify API 获取曲目 请参阅文档 https developer spotify com documentation web api reference search sea
  • 使用 K 均值聚类 OpenCV 进行交通标志分割

    I used K Means Clustering to perform segmentation on this traffic sign as shown below 这些是我的代码 读取图像并模糊 img cv imread 000
  • R 中自定义函数的等高线图

    我正在使用一些自定义函数 我需要根据参数的多个值为它们绘制轮廓 这是一个示例函数 我需要画这样的等高线图 任何想法 Thanks 首先你构造一个函数 fourvar它将这四个参数作为参数 在这种情况下 您可以使用 3 个变量来完成此操作 其
  • 如何通过 Python socket.send() 发送字符串以外的任何内容

    我对 Python 编程非常陌生 但出于必要 我必须快速地将一些东西组合在一起 我正在尝试通过 UDP 发送一些数据 除了当我执行 socket send 时 我必须以字符串形式输入数据之外 一切都正常 这是我的程序 这样你就可以看到我在做
  • Python NLP 英式英语与美式英语

    我目前正在用Python 进行NLP 工作 然而 在我的语料库中 既有英式英语也有美式英语 实现 实现 我正在考虑将英式英语转换为美式英语 但是 我没有找到一个好的工具 包来做到这一点 有什么建议么 我也找不到包 但试试这个 请注意 我必须
  • Docker:通过 Gunicorn 运行 Flask 应用程序 - Worker 超时?表现不佳?

    我正在尝试创建一个用Python Flask编写的新应用程序 由gunicorn运行 然后进行dockerized 我遇到的问题是 docker 容器内的性能非常差 不一致 我最终得到了响应 但我不明白为什么性能会下降 有时我会在日志中看到
  • Selenium 网页抓取与动态内容和隐藏数据表上的美丽汤

    真的需要这个社区的帮助 我正在使用 Selenium 和 Beautiful Soup 对 Python 中的动态内容进行网页抓取 问题是定价数据表无法解析为 Python 即使使用以下代码 html browser execute scr
  • 指定 Parquet 属性 pyspark

    如何在 PySpark 中指定 Parquet 块大小和页面大小 我到处搜索 但找不到任何有关函数调用或导入库的文档 根据火花用户档案 https mail archives apache org mod mbox spark user 2
  • 写入 UDP 套接字会被阻塞吗?

    如果是的话 在什么条件下 或者 换句话说 在twisted 中运行此代码是否安全 class StatsdClient AbstractStatsdClient def init self host port super StatsdCli
  • 两个 y 轴与相同的 x 轴[重复]

    这个问题在这里已经有答案了 可能的重复 在单个图中绘制 4 条曲线 具有 3 个 y 轴 https stackoverflow com questions 1719048 plotting 4 curves in a single plo
  • 如何在包更新之间保留数据文件?

    我正在使用data files的论证setuptools setup 将配置文件安装到 etc和用户主目录 但是更新包pip install
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • 对 pandas 数据框中的每一列应用函数

    我如何以更多的熊猫方式编写以下函数 def calculate df columns mean self df means for column in df columns columns tolist cleaned data self
  • 如何在 Pandas 数据框中用 NaN 替换一系列值?

    我有一个巨大的数据框 我应该如何用 NaN 替换一系列值 200 100 数据框 您可以使用pd DataFrame mask https pandas pydata org pandas docs stable generated pan
  • Synapse Notebook 参考 - 使用参数从另一个笔记本调用 Synapse Notebook

    我有一个带有参数的突触笔记本 我试图从另一个笔记本调用该笔记本 我正在使用 run 命令 我应该如何将参数从基本笔记本传递到正在调用的笔记本 另外 对我来说 上述答案不起作用 作为对此问题的单独解决方案 下面是一个答案 打开笔记本并转到最右
  • 在没有numpy的情况下在python中分配变量NaN

    大多数语言都有一个 NaN 常量 您可以使用它为变量分配值 NaN python 可以在不使用 numpy 的情况下做到这一点吗 是的 使用math nan https docs python org 3 library math html

随机推荐

  • AccountManager:invalidateAuthToken 不会使令牌失效

    我正在尝试从存储在 Android 设备中的 Google 帐户获取全新的令牌 但我得到的只是我过去几天缓存的旧令牌 看起来它被缓存在手机的某个地方 甚至没有发送互联网请求 我在没有互联网连接的情况下在应用程序中进行了测试 并且返回了相同的
  • PL/SQL 过程的同步。如何保证程序一次只执行一个? [复制]

    这个问题在这里已经有答案了 某些 PL SQL 过程需要花费大量时间进行评估 如重新计算和更新大量数据 我想限制将此过程评估为单个的执行上下文的数量 如果其他上下文执行它 则什么也不做 但我不知道在 PL SQL 代码中使用哪些原子操作 N
  • 接口 VS API VS 公共类

    我对这三个术语的含义和区别有点困惑 接口 APIs 公开课 我之前问过 API 和 Public 类之间有什么区别吗 这是问题 公共方法与公共 API 我明白了 但现在有了新概念界面 我又对Interface和API以及Public cla
  • 为什么 numpy 列表访问比普通 python 慢?

    我的印象是 numpy 对于列表操作会更快 但以下示例似乎表明情况并非如此 import numpy as np import time def ver1 a i for i in range 40 b 0 for i in range 4
  • Visual Studio 2015 jQuery 智能感知不工作

    因此 我创建了一个 Visual Studio 2015 空 ASP net Core 应用程序 并尝试使用 Bower 添加 jQuery 但它没有获取 jQuery 的智能感知 它显示一条警告 指出 智能感知无法确定准确的值 完成列表
  • Bash 脚本数组转 csv

    我想从我的数组中执行逗号分隔的字符串 在我的脚本中我收集数据到数组outputArr然后我想echo来检查一下 但现在我被困住了 我想使用以下命令在控制台上打印它 echo outputArr 但我得到了错误的输出 所以我尝试调试它并这样写
  • 如何判断数据库更新是否成功?

    我正在尝试修改一些遗留的ASP经典代码 并且我对ASP了解不多 如何判断数据库插入 更新或删除是否失败 我所说的 失败 是指它要么引发错误 要么影响零行 以下是 ASP 文件中已有的用于设置数据库连接的代码 On Error Resume
  • 外包RSA加密和解密的问题

    我在 RSA 加密和解密方面遇到问题 我正在 android 中开发 想外包 RSA 加密和解密 在我尝试外包之前 我的源代码运行良好 我创建了私钥和公钥 并将其保存为 private key 和 public key 该错误是由该方法引起
  • 如何在 JavaScript 变量中存储多个 jQuery 选择器?

    显然 如果多次使用 jQuery 选择器 将它们存储在变量中是个好主意 not如果只使用一次是个好主意 我的问题是 如何在变量中存储可互换使用的多个选择器 例如 假设我选择 object1 object2 然后我选择 object1 我将如
  • 如何以编程方式更新元素并将其添加到 XSD

    我需要以编程方式更新 java 中的现有 XSD 如下所示
  • group_concat 结果在 IN 条件下不起作用

    有没有可能的方法将 group concat 的结果放入 SQL 查询的 IN 条件中 在网络主表中 我在 IndustryId 列中有逗号分隔的字段 喜欢 userId industryId 123 3831 123 2832 3832
  • 错误:类型 List 的方法 getId() 未定义

    我有一个方法来创建类对象列表 public List
  • Tkinter 将视频插入窗口[重复]

    这个问题在这里已经有答案了 我目前有这段代码用于从 tkinter 程序打开 mp4 文件 import os from tkinter import app Tk app title Video Player Fcanvas Canvas
  • 如何更改菜单栏中子菜单的标签颜色?

    我想使用菜单栏更改子菜单的标签颜色 我正在使用的代码如下
  • 转义 Java RegEx 元字符

    我正在尝试转义 Java 中的 RegExp 元字符 以下是我想要的 INPUT STRING This is test OUTPUT STRING This is test 这就是我目前正在做的事情 但它不起作用 String input
  • 对于每个 Spring websocket 事件,Principal 为 null

    我试图从 Spring websocket SessionConnectEvent 获取主体用户名 但它在每个侦听器上均为空 我可能做错了什么 为了实现它 我遵循了您可以在这里找到的答案 如何使用 Spring 4 捕获 webSocket
  • 尽管浏览器预取/缓存,如何判断文件是否真正下载并保存?

    我正在创建一个脚本来保存下载统计信息 但我只想在文件实际下载时更新统计信息 问题是浏览器 例如 Explorer 9 Chrome 等 会在 保存 打开 对话框仍然打开时自动开始下载文件 这意味着在用户指定保存位置之前 或者资源管理器仍然显
  • 限制扩展 ASCII 字符集的正则表达式

    我有一个创建 xml 文件的多语言应用程序 但 XML 标记中不应该包含从 168 到 254 的扩展 ASCII 字符 所以 我想限制用户进入 我尝试限制除字母数字 下划线和破折号之外的所有内容 但它不允许作为扩展 ASCII 一部分的重
  • 运行时将组件或模块加载到 angular2 中的模块中

    我有一个使用 Typescript 构建并与 webpack 捆绑在一起的 Angular 应用程序 这里没有什么不寻常的 我想要做的是允许运行时插件 这意味着捆绑包外部的组件和 或模块也应该能够在应用程序中注册 到目前为止 我已经尝试在
  • 循环、清除并在同一图形上显示不同的图

    我想使用循环查看绘图如何随不同值变化 我想在同一个情节上看到它 但我不想在图中保留之前的情节 在 MATLAB 中 可以通过创建一个图形并在同一个图形上进行绘图来实现这一点 当循环结束时关闭它 Like fh figure for loop