删除流图(matplotlib)而不清除图形

2024-05-15

到目前为止我总是在这里找到帮助。我长期以来一直在寻找问题的解决方案,现在我可能已经失明了..我希望你能帮助我解决这个问题:

我已经构建了一个 python 程序,可以绘制方向场(颤动)或流图。由于图表中可能还有其他数据(例如轨迹),我不能只是清除所有内容并重新绘制。相反,我想删除单个元素。这对于除流图之外的所有内容都非常有效。

因此,流图由线条和箭头组成。存储在变量中sl我可以简单地打电话sl.lines.remove()删除行。但这对箭头不起作用。 我该如何删除这些?

编辑: 所以这里有一些代码:

import numpy as np
import matplotlib.pyplot as pp

streamplot = None

def mySystem(z):
    x, y = z
    return y, -x


def stream():
    xmin = -10
    xmax = 10
    ymin = -10
    ymax = 10

    N = 40
    M = int(N)
    a = np.linspace(xmin,xmax,N)
    b = np.linspace(ymin,ymax,N)

    X1, Y1 = np.meshgrid(a,b)
    DX1, DY1 = mySystem([X1,Y1])

    global streamplot
    streamplot = pp.streamplot(X1, Y1, DX1, DY1, density=2, color='#b5b5b5')

def removeStream():
    global streamplot
    streamplot.lines.remove()

    #doesn't work: streamplot.arrows.remove()

stream()
removeStream()
pl.show() # arrows still here!

有一个解决方法PatchCollection没有工作remove method.

箭头被添加到ax.patches。假设图中没有任何其他补丁(例如条形图使用补丁),您可以这样做ax.patches = []删除箭头。

理想情况下,您可以从sl.arrows PatchCollection,但它实际上并不存储对补丁本身的引用,只是存储它们的原始路径。

如果图中确实有其他补丁,则可以删除所有实例FancyArrowPatch反而。例如。

keep = lambda x: not isinstance(x, mpl.patches.FancyArrowPatch)
ax.patches = [patch for patch in ax.patches if keep(patch)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除流图(matplotlib)而不清除图形 的相关文章

随机推荐

  • 如何让我的云代码在我的 Worker dyno(而不是 Web dyno)上运行?

    我在heroku 上部署了一个解析服务器 我正在解析服务器上运行一些云代码 该代码需要几分钟才能运行 并且在 Web dyno 上运行时会导致 Heroku 出现超时错误 heroku router at error code H12 de
  • AppDelegate 的变量用作全局变量不起作用

    我想使用我的 AppDelegate 来存储任何其他类都可以访问的对象 我已经像这样声明了这个 AppDelegate interface MyAppDelegate UIResponder
  • angular.js ui + bootstrap typeahead + 异步调用

    我将 typeahead 与 angular js 指令一起使用 但填充自动完成的函数进行了异步调用 我无法返回它来填充自动完成 有没有办法让它与这个异步调用一起工作 我可以假设您正在使用 Bootstrap 2 x 的 typeahead
  • 如何使用 PyQt 抓取桌面截图?

    我可以使用 PyQt 从桌面或任何窗口截取屏幕截图吗 如何处理桌面上的keyPressEvent Thanks 如何截取桌面屏幕截图的示例 import sys from PyQt4 QtGui import QPixmap QApplic
  • 你可以有多个 $(document).ready(function(){ ... });部分?

    如果我在启动时有很多功能 它们都必须在一个功能下 document ready function 或者我可以有多个这样的语句吗 您可以拥有多个 但这并不总是最好的做法 尽量不要过度使用它们 因为这会严重影响可读性 除此之外 这是完全合法的
  • 在 Android 中从麦克风录制 wav 文件 - 问题

    我需要能够使用 Android 中的麦克风创建 WAV 文件 目前 我遇到了很多麻烦 到目前为止 这就是我的情况 我正在使用 micDroid 项目代码的一部分来记录 read thread int sampleRate 44100 int
  • 如何从 Vector 创建非消耗迭代器

    情况 我有一种情况 我想调用定义在Iterator函数参数的特征 我想调用它的函数接受一个类型的参数 该类型是trait called VecLike 该函数称为get all matching rules get all matching
  • php 邮件特殊字符 utf8

    我有以下脚本 在电子邮件中 主题 Testmail Special Characters Body Hi there this isn t somet
  • 无法在 ASP.NET Core 项目中添加对 .NET Core 类库的引用

    我创建了一个新的ASP NET CoreVS 2015 更新 3 中的项目和类库 就是这样project json好像 version 1 0 0 dependencies NETStandard Library 1 6 0 framewo
  • grails 重写重定向控制器方法

    我试图覆盖默认的控制器重定向方法 但似乎无法让以下代码正常工作 我创建了一个插件 我正在尝试使用 doWithDynamicMethods 来替换重定向 def doWithDynamicMethods ctx gt application
  • Java:枚举:NoClassDefFoundError

    我在 J2EE 应用程序中使用枚举时遇到问题 我在无状态服务 bean 内的 switch case 中使用枚举 在运行时 我在 switch 语句上看到以下异常 Caused by java lang NoClassDefFoundErr
  • GCM 无法唤醒设备

    我正在开发 GCM 应用程序 当设备不空闲时 即按电源按钮休眠 一切正常 但是 当我在设备空闲时发送消息时 设备不会唤醒 我做了以下事情 已验证服务器应用程序中的delay while idle未设置为true 每条消息使用不同的折叠键 多
  • virtualenv:指定在系统范围内使用哪些包与在本地使用哪些包[重复]

    这个问题在这里已经有答案了 可能的重复 使 virtualenv 继承全局站点包中的特定包 https stackoverflow com questions 12079607 make virtualenv inherit specifi
  • 获取telegram群组的所有用户

    我正在尝试获取电报组的所有用户 我看到方法 getChatAdministrators 但我认为 API 没有获取所有成员的方法 我正在使用nodejs的telegram bot api Telegram 机器人 API https cor
  • 将 Pytorch LSTM 的状态参数转换为 Keras LSTM

    我试图将现有的经过训练的 PyTorch 模型移植到 Keras 中 在移植过程中 我陷入了LSTM层 LSTM 网络的 Keras 实现似乎具有三种状态类型的状态矩阵 而 Pytorch 实现则具有四种状态矩阵 例如 对于hidden l
  • Eclipse 在处理 xml(传入或传出)时挂起。此时CPU+磁盘尖峰

    我每天必须处理许多 XML 这极大地打断了我的工作流程 我尝试降级到 Indigo 但所有附加组件都被删除 打开xml时出现问题 切换到 xml 切换出一个 xml 甚至切换到另一个 xml 到底发生了什么事情让 XML 如此烦人 我可以禁
  • 将数据从一个线程传递到另一个线程的最快可能方法

    我正在使用增强spsc queue将我的东西从一个线程移动到另一个线程 这是我的软件中的关键位置之一 所以我想尽快完成它 我写了这个测试程序 include
  • 属性错误:“列表”对象没有属性“拆分”

    我正在尝试读取一个文件并用逗号分隔每行中的一个单元格 然后仅显示第一个和第二个单元格 其中包含有关纬度和经度的信息 这是文件 time 纬度 经度 类型2015 03 20T10 20 35 890Z 38 8221664 122 7649
  • ASP.NET 解决方案的本机程序集绑定失败

    NOTE 这个问题的主要目的是理解 解释CLR 的程序集绑定行为 一旦确定原因 解决方案就应该显而易见 请注意 我知道我的设置不是最佳的 nativedll 未签名和版本控制等 但我只是想调查 CLR 的绑定行为 我正在尝试在我的 asp
  • 删除流图(matplotlib)而不清除图形

    到目前为止我总是在这里找到帮助 我长期以来一直在寻找问题的解决方案 现在我可能已经失明了 我希望你能帮助我解决这个问题 我已经构建了一个 python 程序 可以绘制方向场 颤动 或流图 由于图表中可能还有其他数据 例如轨迹 我不能只是清除