以绘图单位指定 matplotlib 散点大小

2023-12-06

我想不使用点或像素而是使用绘图单位来指定散点大小。以下面为例:

import matplotlib.pyplot as plt
x = [0]
y = [0]
plt.scatter(x,y)
plt.show()

这会产生如下图:

enter image description here

比如说,如果我希望标记的半径恰好为 0.002 个绘图单位,该怎么办?我明白了s参数表示标记大小的区域(以磅为单位)。有没有办法直接以绘图单位提供它?如果不是,从绘图单位转换为点的最佳方法是什么,以便我可以将其传递到s范围?

我还看到了其他一些建议使用PatchCollection并简单地绘制一个具有指定半径的圆。我不想使用这种方法。我想避免广泛重写现有代码,而是使用s参数连同plt.scatter.

Edit

我尝试使用来自的代码这个问题这显然允许您根据绘图单位控制标记大小。但是我无法真正让它适用于我的基本情况:

import matplotlib.pyplot as plt
import numpy as np


class scatter():
    def __init__(self,x,y,ax,size=1,**kwargs):
        self.n = len(x)
        self.ax = ax
        self.ax.figure.canvas.draw()
        self.size_data=size
        self.size = size
        self.sc = ax.scatter(x,y,s=self.size,**kwargs)
        self._resize()
        self.cid = ax.figure.canvas.mpl_connect('draw_event', self._resize)

    def _resize(self,event=None):
        ppd=72./self.ax.figure.dpi
        trans = self.ax.transData.transform
        s =  ((trans((1,self.size_data))-trans((0,0)))*ppd)[1]
        if s != self.size:
            self.sc.set_sizes(s**2*np.ones(self.n))
            self.size = s
            self._redraw_later()

    def _redraw_later(self):
        self.timer = self.ax.figure.canvas.new_timer(interval=10)
        self.timer.single_shot = True
        self.timer.add_callback(lambda : self.ax.figure.canvas.draw_idle())
        self.timer.start()


x = [0]
y = [0]
fig = plt.figure()
ax = fig.gca()
size = 3.14*0.002**2
scatter(x, y, ax, size = 0.002, edgecolors = 'black')
ax.set_ylim(-0.004, 0.004)
ax.set_xlim(-0.004, 0.004)
ax.scatter(x,y)
ax.grid()
plt.show()

以上输出如下图:

enter image description here

正如我在中所示,它看起来不像 0.002 的大小scatter(x, y, ax, size = 0.002, edgecolors = 'black')。我不确定我在这里做错了什么。


None

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

以绘图单位指定 matplotlib 散点大小 的相关文章

  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • 迭代时擦除集合元素///

    我不明白 为什么会出现运行时错误 迭代时删除集合元素 set
  • JS设置Cookie然后加载页面的方法

    我经常访问一个网站 其中有 点击更改为深色主题 按钮 黑暗主题更容易阅读 所以我每次访问都必须单击链接 关闭时清除历史记录 我在本地 Linux 机器上运行 Firefox 因此 Javascript HTML Python 和 Bash
  • 设置默认文件浏览位置VBA

    我有以下 VBA 代码 用于浏览 MS ACCESS 表单中的文件名 Private Sub Command64 Click Dim dialog As FileDialog Dim filePath As String Dim fileN
  • 使用 Jsoup 删除元素不起作用

    我想删除 html 文件头部的一些元素 CSS 标签 我尝试过这样的 Document doc Jsoup parse htmlString Element head doc head Elements headChildren head
  • 插入文本并将其添加到命名范围以供以后检索

    我正在尝试编写一个用于文档的 Google Apps 脚本 该脚本将插入一些文本 然后将插入的文本添加到命名范围 为了确保插入的文本保存到命名范围 我只想选择插入的文本 这是代码 function insertText var doc Do
  • 实体框架 IDENTITY_INSERT ON 不起作用

    我有这段代码 应该插入带有身份插入的记录 using MCT DB ArchiveEntities ent new MCT DB ArchiveEntities ent ExecuteStoreCommand SET IDENTITY IN
  • 为什么Java中的类是“class”? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 为什么 Java 的创建者对 Java 中的类使用 class 这个名称 这个词从何而来
  • UIKeyboardWillHide 未触发

    我在这里读了很多关于这个主题的帖子 但我无法找到我的问题的答案 所以 希望你不会对另一篇 UIKeyboard 帖子感到无聊 在我的视图控制器的实现中我添加了self作为两个通知的观察员UIKeyboardWillShowNotificat
  • 如何使用RecyclerView构建水平ListView

    我需要在我的 Android 应用程序中实现水平列表视图 我做了一些研究并发现如何在Android中制作水平ListView and Android 中的水平 ListView 然而 这些问题在 Recyclerview 发布之前就被提出了
  • Swift - 将 JSON 日期转换为 Swift 兼容日期

    我正在尝试转换一个日期 其中 javascript 代码使用 Date 函数生成当前日期 但当我打印出来时 我得到的是零 my code let date2 data 0 as String println date2 var str 20
  • 防火墙应允许哪些端口使用 TURN 服务器?

    我想在我们公司的服务器上设置一个turn服务器 coturn 而且我不确定外部访问应该允许哪些端口 8443是必须的 使用WebRTC 3478 是凭证使用的必备条件 但是 TURN 服务器使用的端口有无数个 是否需要在防火墙中允许它们 或
  • SASS:循环内部属性

    我想为单个属性生成多个值 background image radial gradient circle primary 10 transparent 10 radial gradient circle primary 10 transpa
  • Python连续TCP连接

    我是套接字编程新手 并试图重新回到Python 我想编写一个简单的 TCP 程序 它将持续维护连接 直到达到某个结束状态 在这种情况下 客户端发送 关闭 这对于第一次迭代来说效果很好 但是在我发送的第二件事上它冻结了 我不确定为什么 有人可
  • 二进制到 Base64 (Delphi)

    我怎样才能获得内容exe文件并将其转换为Base64编码 Edit I use D2010我想知道这到底是怎么可能的 open an exe file convert its content into base64 在Delphi 2009
  • 无法将“User”分配给 FutureBuilder 中的参数类型“Future

    我试图确定用户是否使用 FirebaseAuth instance currentUser 登录 Flutter Firebase 然后返回 LoginScreen 或 Dashboard 但出现错误 我尝试根据 FirebaseFlutt
  • 在运行时更改 IconTintColorBehavior 的 TintColor 不起作用

    你好 我正在测试新的IconTintColorBehavior在 CommunityToolkit Maui 1 1 0 中 它可以查找 但仅在启动应用程序时有效 如果我改变AppTheme在运行时 它不起作用 还有其他人观察过这种行为吗
  • 滑动功能无法使用 jquerymobile 和 android 的phonegap 工作

    我是phonegap的新手 我正在使用phonegap for android在eclipse中创建应用程序 我在xml文件夹中添加了phonegap jar和插件 我还添加了jquery库和phonegap1 1 0 js 我正在尝试实现
  • 在python中生成正弦波声音

    我一直在尝试使用以下代码生成正弦波并在我的扬声器中播放它 但这听起来很糟糕 有人知道为什么吗 听起来不像正弦波 dur int FS float duration 1000 for i in range dur a frequency i
  • 连接到服务器上运行的 virtualenv/django 时如何解决 ERR_CONNECTION_REFUSED

    我已经在 ubuntu 服务器上的用户部分安装了 virtualenv 和 Django 一切似乎都安装正确 当我启动服务器时python manage py runserver我收到以下消息 这似乎是正确的 Performing syst
  • 以绘图单位指定 matplotlib 散点大小

    我想不使用点或像素而是使用绘图单位来指定散点大小 以下面为例 import matplotlib pyplot as plt x 0 y 0 plt scatter x y plt show 这会产生如下图 比如说 如果我希望标记的半径恰好