matplotlib:重绘前清除散点数据

2023-12-13

我在 imshow (地图)上有一个散点图。 我想要一个点击事件来添加一个新的散点,这是我通过 scater(newx,newy)) 完成的。问题是,然后我想添加使用选择事件删除点的功能。由于没有删除(pickX,PickY)函数,我必须获取选定的索引并将它们从列表中删除,这意味着我无法像上面那样创建分散,我必须分散(allx,ally)。

所以底线是我需要一种删除散点图并用新数据重新绘制它的方法,而不改变我的 imshow 的存在。我已经尝试过并尝试过: 只是一次尝试。

 fig = Figure()
 axes = fig.add_subplot(111)
 axes2 = fig.add_subplot(111)
 axes.imshow(map)
 axes2.scatter(allx,ally)
 # and the redraw
 fig.delaxes(axes2)
 axes2 = fig.add_subplot(111)
 axes2.scatter(NewscatterpointsX,NewscatterpointsY,picker=5)
 canvas.draw()

令我惊讶的是,这也省去了我的 imshow 和斧头:(。 任何实现我的梦想的方法都非常感激。 安德鲁


首先,你应该好好阅读一下事件文档在这里.

您可以附加一个每当单击鼠标时就会调用的函数。如果您维护一个可以挑选的艺术家列表(在本例中为点),那么您可以询问鼠标单击事件是否在艺术家内部,并调用艺术家的remove方法。如果没有,您可以创建一个新艺术家,并将其添加到可点击点列表中:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = plt.axes()

ax.set_xlim(0, 1)
ax.set_ylim(0, 1)

pickable_artists = []
pt, = ax.plot(0.5, 0.5, 'o')  # 5 points tolerance
pickable_artists.append(pt)


def onclick(event):
    if event.inaxes is not None and not hasattr(event, 'already_picked'):
        ax = event.inaxes

        remove = [artist for artist in pickable_artists if artist.contains(event)[0]]

        if not remove:
            # add a pt
            x, y = ax.transData.inverted().transform_point([event.x, event.y])
            pt, = ax.plot(x, y, 'o', picker=5)
            pickable_artists.append(pt)
        else:
            for artist in remove:
                artist.remove()
        plt.draw()


fig.canvas.mpl_connect('button_release_event', onclick)

plt.show()

enter image description here

希望这可以帮助您实现您的梦想。 :-)

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

matplotlib:重绘前清除散点数据 的相关文章

  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • Seaborn 调色板 - 防止颜色回收

    Seaborn 允许定义包含多种颜色的调色板 这对于具有多条线的图表很有用 然而 当将调色板设置为具有多种颜色的调色板时 仅使用前六种颜色 之后颜色会循环使用 从而难以区分线条 这可以通过显式调用调色板来覆盖 但这并不方便 当定义的颜色超过
  • 带剖面的 3D 曲面图

    基本上 我有一个由一组时间序列组成的曲面图 我想在特定高度添加剖面图 以更好地了解一年中值高于所选阈值的时期 由此 其中显示平面但不是剖面 To This 有什么建议吗 使用 alpha 和相机仰角并没有解决问题 平面似乎仍然在人物的前面
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • 在 Matplotlib 中将文本旋转到对数刻度线上

    Problem 我正在处理对数刻度的数据 并希望旋转它以适合一条线 我知道模型 但不确定我应该插入哪个角度transform angles以恢复正确的旋转 经过一番尝试和错误后 我知道对于我需要的轴限制 答案是 10 度左右 MWE imp
  • 无法将 matplotlib 导入 Python 3

    我正在尝试自学编程 但在下载基本教程所需的模块时不断遇到问题 我最近的尝试是获得matplotlib模块到我的 Python 3 环境中 我尝试了很多不同的安装包以及在互联网上找到的很多建议 但我不记得最初是如何获得该模块的 但安装过程似乎
  • 如何绘制多个子图

    我对这段代码的工作原理有点困惑 fig axes plt subplots nrows 2 ncols 2 plt show 在这种情况下 图轴如何工作 它有什么作用 另外为什么这不能做同样的事情 fig plt figure axes f
  • 如何制作 MatPlotLib 补丁模式的图例或将它们添加到预先存在的图例中

    如何为图表上使用的补丁模式制作图例或将有关补丁模式的信息添加到预先存在的图例中而不影响图例中已存在的信息 创建补丁时包含 kwarglabel ex bunch of code ax add patch mpl patches Rectan
  • 使用 subplots 和 colorbar 与 matplotlib 将 x 轴与 sharex 对齐

    我正在尝试使用 pyplot 创建一组具有共享 x 轴的子图 当图表很简单并且所有 x 轴都对齐得很好时 这一切都很好 但是 当我包含包含颜色条的子图时 这会压缩该特定子图的宽度以包含颜色条 从而导致子图不再共享 x 轴 我在网上搜索过 但
  • 在seaborn kdeplot中设置置信度

    我对seaborn完全陌生 所以如果这是一个简单的问题 我深表歉意 但我在文档中找不到关于如何在kdeplot中控制n levels绘制的级别的描述 这是一个例子 import seaborn as sns import numpy as
  • 如何将 pylab 图保存到内存文件中,该文件可以读入 PIL 图像?

    以下是我的第一个镜头 但从未成功 import cStringIO import pylab from PIL import Image pylab figure pylab plot 1 2 pylab title test buffer
  • 如何从图像中提取 RGB 并仅将 RG 绘制为图形? R 代表 X,G 代表 Y

    我正在尝试从图像中提取 RGB 分量并使用 matplotlib 绘制 3D RGB 直方图 但我不知道该怎么做 这是我当前的代码 import cv2 import numpy as np from scipy import ndimag
  • _tkinter.TclError:新 OS X Mavericks 没有显示名称,也没有 $DISPLAY 环境变量

    这是我的第一篇文章 所以请原谅 我正在尝试使用 matplotlib 创建动画 直到几天前我都可以完美地做到这一点 直到我升级到 OS X Mavericks 从此一切都崩溃了 请注意 以下代码适用于 OS X Lion 突然 我在 Mav
  • 如何使用 python 绘制具有两个斜率的线

    我使用下面的代码绘制一条具有两个斜率的线 如图所示 斜率应该在一定限制 limit 5 之后下降 我正在使用矢量化方法来设置斜率值 还有其他方法来设置斜率值 有人可以帮助我吗 import matplotlib pyplot as plt
  • 在 python 中创建带有工具提示的 pdf

    这是流行且高度赞扬的 Python 副本在 R 中使用工具提示创建 pdf https stackoverflow com questions 4691780 create pdf with tooltips in r 简单的问题 有没有办
  • matplotlib 孵化 fill_ Between 没有边缘?

    我有一个想要孵化的区域 该区域与现有的虚线绘图线 相同颜色 接壤 但是 当我使用fill between要孵化的区域周围也有一个边界 该边框似乎与创建阴影线的线条共享属性 因此我无法将边缘颜色设置为 无 或将线条样式设置为 因为阴影线也会受
  • 如何绘制多类分类器的精度和召回率?

    我正在使用 scikit learn 我想绘制精度和召回曲线 我正在使用的分类器是RandomForestClassifier scikit learn 文档中的所有资源都使用二元分类 另外 我可以绘制多类的 ROC 曲线吗 另外 我只找到
  • 在多个图表上绘制一条线

    I don t know how this thing is called or even how to describe it so the title may be a little bit misleading The first a

随机推荐

  • 在 C# 中做一些工作时显示进度条?

    我想在做一些工作时显示进度条 但这会挂起 UI 并且进度条不会更新 我有一个 WinForm ProgressFormProgressBar这将无限期地持续下去marquee时尚 using ProgressForm p new Progr
  • 有人能解释一下这个说法吗? lpadded = win // 2 * [-1] + l + win // 2 * [-1]

    假设 l 是一个整数列表 而 win 是一个整数 则以下代码生成一个列表 lpadded lpadded win 2 1 l win 2 1 在 lpadded 1 中 填充到列表的开头和结尾 但我完全不知道该代码如何生成此列表 这里的 1
  • TextInputLayout :如何给予 padding 或 margin 来提示?

    我必须使用TextInputLayout我的项目中的设计支持库 我想在之间留出空间hint and EditText in TextInputLayout 我设置边距和填充TextInputLayout甚至在里面EditText但两者都不起
  • 在哪里可以找到 size_t 的定义?

    我看到用这种类型定义的变量 但我不知道它来自哪里 也不知道它的目的是什么 为什么不使用 int 或 unsigned int 其他 类似 类型呢 Void t 等 From 维基百科 The stdlib h and stddef h头文件
  • Hibernate:使用增量和 Oracle 模式的 ID 生成器

    我正在使用 Hiberbnate 3 1 3 我有如下映射 当我尝试将记录插入 TEST TABLE 时 出现异常 线程 主 org hibernate exception SQLGrammarException 中的异常 无法获取增量生成
  • 在 Python 中使用 Selenium 获取某个 div 的链接

    我有以下 HTML 页面 我想获取特定 div 内的所有链接 这是我的 HTML 代码 div class rec view a href www xyz com firstlink html img src imga png a a hr
  • 访问 cvCreateMatND 的元素

    我是 OpenCV 新手 我正在尝试创建一个 n 维数组并使用 CvMatND 访问每个元素 我可以通过 data i step j nchannels 0 访问二维矩阵 如何访问由 int size 12 12 12 CvMatND ma
  • Spring Data REST 不包括资源中的实体链接

    由 Oliver Gierke 的解决方案解决 看起来这是 Spring 4 2 0 中的一个已知错误 升级到 4 2 1 已经提供了预期的功能 原始问题 我正在努力将我的开发团队转移到 Spring WebMVC Data REST Da
  • 通过 Process Explorer 中的“结束进程”防止用户进程被终止

    我注意到 GoogleToolbarNotifier exe 无法从 Process Explorer 中杀死 它返回 访问被拒绝 它以用户身份运行 以 正常 优先级运行 并且从程序文件运行 他们是如何做到的呢 我认为可能有一种方法可以修改
  • 我如何调用动态变量名?

    好的 所以我正在尝试制作一个程序来 理解 用户输入并执行他们告诉它的操作 人们通常只使用特定的命令 例如 打开此文件 并且只有当用户完全键入该命令时它才有效 我试图给我的用户一点回旋余地 这样他们就可以输入他们想要发生的事情 然后计算机就会
  • Azure DevOps 解决拉取请求冲突

    所以 我对 Azure 有一个非常奇怪的问题 在拉取请求中 它检测到一些冲突 但没有显示它们在哪里 以及我需要更改什么 在此之前 Visual Studio 从以下位置收集了大量垃圾 vs文件夹 并且显示与之冲突 因此 我删除了分支中的这些
  • 无法理解 Linux 内核模块中 read_proc 的工作

    我正在查看内核模块示例page 程序中使用的read proc如下 int fortune read char page char start off t off int count int eof void data int len if
  • “代码已覆盖”与“代码已测试”?

    将我当前的代码项目转换为 TDD 我注意到了一些事情 class Foo public event EventHandler Test public void SomeFunction snip Test this new EventArg
  • Javascript:将数组转换为对象

    这是转换的最简单方法 src websrv1 dst websrv2 dstport 80 to this src websrv1 dst websrv2 dstport 80 为了将其传递给 AJAX 数据 我在用着视觉搜索它返回一个 F
  • LocalReport方法渲染的线程文化

    我正在 asp net 应用程序中使用 localreport 对象 该报告由一组对象提供 因此 在呈现报表时 会调用该类的一些属性 Class ClassForReport string Date get return aDate Tos
  • 将 css 类添加到 wtform 中的字段

    我正在使用 wtforms 和 Flask 生成动态表单 我想向我生成的字段添加一些自定义 css 类 但到目前为止我还无法这样做 使用我找到的答案here 我尝试使用自定义小部件来添加此功能 它的实现方式几乎与该问题的答案完全相同 cla
  • VueJS 上传带有附加数据的图像

    我正在尝试将图像上传到服务器 同时使用以下方法传递一些附加数据 在同一发布请求中 VueJS 2 CLI 3 axios multer sharp 我在后端有 NodeJS 和 MongoDB 前端
  • Facebook api 在 openActiveSession 期间挂在“正在打开”状态

    我第一次可以正常登录 我有一个选项 用户可以在 Android 应用程序中禁用 facebook 选择此选项后 Facebook 状态将变为 关闭 当我再次使用该选项时 重新登录 API 会在回调函数中的 OPENING 处挂起 根据我发现
  • 使用 VideoWriter 从 OpenCV 打开 GStreamer 管道

    我正在使用 OpenCV 捕获和处理视频帧 我想将它们写入 h265 视频文件 我正在努力从 OpenCV 获得合适的 Gstreamer 管道 Gstreamer 本身工作得很好 特别是 我能够运行此命令 它可以非常快速地对视频进行编码
  • matplotlib:重绘前清除散点数据

    我在 imshow 地图 上有一个散点图 我想要一个点击事件来添加一个新的散点 这是我通过 scater newx newy 完成的 问题是 然后我想添加使用选择事件删除点的功能 由于没有删除 pickX PickY 函数 我必须获取选定的