更新 matplotlib 动画中的 x 轴标签

2023-11-21

这是一段说明我的问题的玩具代码:

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

fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], '-o', animated=True)


def init():
    ax.set_xlim(0, 2*np.pi)
    ax.set_ylim(-1, 1)
    return ln,


def update(frame):
    xdata.append(frame)
    ydata.append(np.sin(frame))
    ln.set_data(xdata, ydata)
    ax.set_xlim(np.amin(xdata), np.amax(xdata))
    return ln,


ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
                    init_func=init, blit=True)
plt.show()

如果我设置blit=True然后数据点就按照我想要的方式绘制。但是,x 轴标签/刻度保持静态。

如果我设置blit=False然后 x 轴标签和刻度就会按照我想要的方式更新。然而,没有绘制任何数据点。

我怎样才能得到绘制的数据(正弦曲线)and要更新的 x 轴数据”?


首先是关于位块传送:位块传送仅应用于轴的内容。它将影响轴的内部部分,但不会影响外轴装饰器。因此如果使用blit=True轴装饰器未更新。或者反过来说,如果你想要更新比例,你需要使用blit=False.

现在,在问题的情况下,这会导致这条线未被绘制。原因是这条线有它的animated属性设置为True。但是,默认情况下不会绘制“动画”艺术家。该属性实际上是用于位块传输;但如果不执行位图传输,将导致艺术家既不被绘制也不被位图传输。将此属性称为blit_include或类似的东西以避免与其名称混淆。
不幸的是,它看起来也没有很好的记录。然而你发现评论源代码 saying

# if the artist is animated it does not take normal part in the
# draw stack and is not expected to be drawn as part of the normal
# draw loop (when not saving) so do not propagate this change

因此总的来说,除非您使用位块传输,否则可以忽略此参数的存在。即使使用位块传送,它也可以被忽略在大多数情况下,因为该属性无论如何都是在内部设置的。

总结这里的解决方案是不使用animated并不要使用blit.

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

fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], '-o')


def init():
    ax.set_xlim(0, 2*np.pi)
    ax.set_ylim(-1, 1)


def update(frame):
    xdata.append(frame)
    ydata.append(np.sin(frame))
    ln.set_data(xdata, ydata)
    ax.set_xlim(np.amin(xdata), np.amax(xdata))


ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
                    init_func=init)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新 matplotlib 动画中的 x 轴标签 的相关文章

随机推荐

  • 如何为非 Qt 应用程序创建 Qt 共享库

    我开发了一个具有 Qt 共享库和 Qt 应用程序的应用程序 Qt 共享库导出一个类 其中包含很少的信号 我为此使用了 Q DECL EXPORT Q DECL IMPORT 宏 目前 dll 和应用程序之间的通信是通过 Qt 信号和插槽进行
  • ionic 3:设备上的 Android 应用程序黑屏

    昨天 我在 Android 设备上构建并运行了我的应用程序 这个版本运行良好 从那时起 我改进了我的应用程序 某些模块的内容视图和控制器 今天 我的设备上出现黑屏 测试应用程序是否正常 当我执行时ionic serve 当我构建另一个 Io
  • 将 HTML 实体分配给 innerHTML 时出现 DOM 异常

    在本页http blog zacharyvoase com 2010 11 11 sockets and nodes i 在 javascript 控制台中运行以下代码将抛出异常 var div document createElement
  • 在 Eclipse 中调试 Playframework 2.0

    在 play eclipsify 之后 项目文件夹中没有 eclipse 文件夹 如何使用 eclipse 和 JPDA 来调试这个项目 从 play 2 0 开始 调试项目唯一需要做的就是在控制台 play debug run 中运行项目
  • 如何调用分配给变量的javascript函数?

    function test1 do something 要调用上面的函数 我只需要写test1 var check day function select d do something 如何调用分配给变量的函数 同样的方式 使用括号调用函数
  • 谷歌地图的标记未在 iframe 中居中

    我对在 iframe 中打开谷歌地图有一点奇怪的要求 我有地址 我用它来传递并将其转换为谷歌地图 但问题是我的 iframe 的大小是 200 200 所以标记没有居中 另一个问题是标记信息窗口也会在几秒钟后弹出 这使我的标记超出框架边界
  • 将骨干模型绑定到 Marionette ItemView - 阻塞 .fetch()?

    这是一个由 2 部分组成的问题 1 是否有更好的方法将模型异步渲染到视图 我目前正在使用 ajax 请求fetch模型中的方法 尽管我在初始化时显式调用它 then使用应用程序事件呈现模板化视图 vent 在之后从模型内部发布parse方法
  • 如何制作带有图像填充的JLabel BorderLayout.CENTER

    我有一个 JFrame 并将 LayoutManager 设置为 BorderLayout 然后继续添加带有图像的 JLabel 但是 当我调整框架大小时 JLabel 不会调整大小 我没有向North S E等添加任何组件 我希望简单地让
  • 如何在 Gridview 中的 RowDataBound 事件中更改 Eval() 字段的值

    我有一个网格视图
  • 处理与 Django 中的应用程序无关的静态文件

    在文档中https docs djangoproject com en dev howto static files 我读到静态文件应该与各自的应用程序放在一起并调用 load staticfiles img src css base cs
  • requestLegacyExternalStorage 在 Android 11 - API 30 中不起作用

    Google 最近在 API 29 中引入了一些与存储 API 相关的更改 例如范围存储 我们通过在 Manifest 中添加 requestLegacyExternalStorage true 来选择退出 但现在当我的 targetSdk
  • 如何提高 JAXB 性能?

    这是我的转换代码 当我们处理大数据时 这需要很长时间 调用该方法几乎一百万次 我们可以清楚地看到它持有线程一段时间 请建议我一些提高性能的方法 public class GenericObjectXMLConverter
  • Scala 类型推理混乱:有还是没有?

    原始版本 trait Animal F A case class Cat F I A limits F I f I gt A extends Animal F A object ConfuseMe def confuse F A tt An
  • 使用转换器直接绑定到 DataContext 时的 WPF 更新绑定

    通常 当您希望数据绑定控件 更新 时 您可以使用 PropertyChanged 事件向界面发出信号 表明数据已在后台发生更改 例如 您可以有一个文本块 该文本块通过属性 DisplayText 绑定到数据上下文
  • 操作/编辑现有 xml 文档的最佳 java Xml 解析器

    任务 我有一个现有的 xml 文档 UTF 8 它使用 xml 命名空间和 xml 模式 我需要解析特定元素 将内容 还需要使用 xml 命名空间前缀 附加到该元素 然后再次写出文档 我应该使用哪个最佳的 XML 解析器库来完成此任务 我看
  • JSONObject 中的 JSONObject

    我有一个这样的 API 输出 user status stat1 54 stats2 87 我创建一个简单的JSONObject从这个 API 中 JSONObject json getJSONfromURL URL 之后我可以像这样读取用
  • 使用 Swift 执行“killall”时不允许进行操作

    我正在尝试创建一个菜单栏应用程序来隐藏桌面图标 并希望其他各种东西主要是为了了解有关 Swift 的更多信息 但由于某种原因我无法让它工作 当我运行该程序并单击其中一个菜单项时 没有任何反应 并且我在控制台中收到此警告 killall wa
  • 如何在 Vim 中每次按键时将当前缓冲区的内容写回文件?

    我希望 Vim 尽可能频繁地自动写入我的文件 理想的情况是每次击键 我需要定期保存 以便我的后台构建过程能够看到它 它是 LaTeX 文档的 makefile 我希望预览器在我完成输入后向我显示一个几乎最新的文档 最终解决方案 下面的答案有
  • genymotion player.exe 停止工作

    当我尝试启动 genymotion Android 模拟器时 它给我一个错误 player exe 已停止工作我尝试寻找答案并发现this但是 我之前遇到了 open gl 2 0 问题 为此我更新了显卡驱动程序 我的主板是华硕 P5G41
  • 更新 matplotlib 动画中的 x 轴标签

    这是一段说明我的问题的玩具代码 import numpy as np import matplotlib pyplot as plt from matplotlib animation import FuncAnimation fig ax