理解 matplotlib 顶点

2023-11-21

我正在尝试在 matplotlib 中为散点图创建自定义标记,其中标记是具有固定高度和变化宽度的矩形。每个标记的宽度是 y 值的函数。我尝试过这样使用这段代码作为模板并假设如果给定 verts 一个 N 二维元组的列表,它会绘制具有相应第一个值的宽度和第二个值的高度的矩形(也许这已经是错误的,但是我还能如何实现这一点?)。

我有一个 x 和 y 值列表,每个值都包含以度为单位的角度。然后,我计算每个标记的宽度和高度

field_size = 2.
symb_vec_x = [(field_size / np.cos(i * np.pi / 180.)) for i in y]
symb_vec_y = [field_size for i in range(len(y))]

并构建 verts 列表并绘制所有内容

symb_vec = list(zip(symb_vec_x, symb_vec_y))
fig = plt.figure(1, figsize=(14.40, 9.00))
ax = fig.add_subplot(1,1,1)
sc = ax.scatter(ra_i, dec_i, marker='None', verts=symb_vec)

但生成的图是空的,但是没有错误消息。谁能告诉我定义顶点时做错了什么以及如何正确执行? 谢谢!


如前所述,需要删除 'marker='None' ,然后指定带有顶点的矩形的适当方法类似于

verts = list(zip([-10.,10.,10.,-10],[-5.,-5.,5.,5]))
ax.scatter([0.5,1.0],[1.0,2.0], marker=(verts,0))

顶点定义为([x1,x2,x3,x4],[y1,y2,y3,y4])所以必须注意哪些有负号等。

这个 (verts,0) 在文档中提到为

为了向后兼容,形式 (verts, 0) 也被接受, 但它相当于verts用于给出一组原始顶点 定义形状。

但是我发现只使用verts没有给出正确的形状。

要自动化该过程,您需要执行类似的操作

v_val=1.0
h_val=2.0
verts = list(zip([-h_val,h_val,h_val,-h_val],[-v_val,-v_val,v_val,v_val]))

基本示例:

import pylab as py
ax = py.subplot(111)
v_val=1.0
h_val=2.0
verts = list(zip([-h_val,h_val,h_val,-h_val],[-v_val,-v_val,v_val,v_val]))
ax.scatter([0.5,1.0],[1.0,2.0], marker=(verts,0))

enter image description here*

edit

个人标记

所以你需要为每种情况手动创建一个vert。这显然取决于您希望矩形如何点对点更改。这是一个例子

import pylab as py
ax = py.subplot(111)


def verts_function(x,y,r):
    # Define the vertex's multiplying the x value by a ratio
    x = x*r
    y = y
    return [(-x,-y),(x,-y),(x,y),(-x,y)]

n=5
for i in range(1,4):
    ax.scatter(i,i, marker=(verts_function(i,i,0.3),0))
    py.show()

enter image description here

所以在我的简单例子中,我绘制点 i,i 并在它们周围绘制矩形。指定顶点标记的方式并不直观。在文档描述如下:

verts:用于路径顶点的 (x, y) 对列表。的中心 标记位于 (0,0) 且大小已标准化,使得 创建的路径被封装在单元格内。

因此,以下内容是等效的:

vert = [(-300.0, -1000), (300.0, -1000), (300.0, 1000), (-300.0, 1000)]
vert = [(-0.3, -1), (0.3, -1), (0.3, 1), (-0.3, 1)]

例如,他们将产生相同的标记。因此,我使用了一个比率,这就是您需要投入工作的地方。 r 的值(比率)将改变哪个轴保持不变。

这一切都变得非常复杂,我相信一定有更好的方法来做到这一点。

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

理解 matplotlib 顶点 的相关文章

  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 向 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
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • jQGrid 列选择器模态叠加

    看看这个example 请注意单击 搜索 按钮如何显示一个模态表单 其后面有一个黑色的覆盖层 现在请注意单击 列选择器 按钮如何显示模式表单 但其后面没有覆盖层 我的问题是 如何让深色叠加层出现在列选择器弹出窗口后面 目前尚有无证optio
  • Android - 无法创建简单的矩形形状...UnsupportedOperationException?

    我在使用 XML 创建简单的圆角矩形时遇到问题 每次我尝试将 角 元素添加到自定义形状时 我都会得到 java lang UnsupportedOperationException 在 android graphics Path addRo
  • 添加FriendlyUrls 后,jQuery ajax 调用无法与 ASP.Net Web 表单一起使用

    在没有为 ASP Net Web Forms 项目打开FriendlyUrls 的情况下 以下代码可以正常工作
  • 如果角色包含空格,如何编写 AuthorizeAttribute

    我正在使用 MVC3 4 但这只是授权中的一般问题 我的角色之一在数据库中名为 Trip Leader 其中包含一个空格 I tried Authorize Roles Trip Leader Administrator 但它失败了 有人可
  • C++ 复制构造函数签名:重要吗

    我当前的实现使用大量具有此语法的复制构造函数 MyClass Myclass Myclass my class 它真的 功能上 不同于 MyClass MyClass const MyClass my class and why 有人建议我
  • 在 WinRT 应用程序中处理两根、三根、四根手指滑动手势

    我有以下代码 private Point initialpoint private void ManipulationStarted object sender ManipulationStartedRoutedEventArgs e in
  • java中的继承继承变量?

    据我了解继承的类也应该继承变量 那么为什么这段代码不起作用呢 public class a private int num public static void main String args b d new b class b exte
  • 为什么我的控件不接受键盘输入?

    我已经构建了一个自定义控件 我正在尝试向其发送输入 它将接受鼠标输入并正确报告 MouseDown MouseMove 和 MouseUp 但无论出于何种原因 它都不会接受键盘输入 当我单击它时 它不会获得焦点 并且我按下的任何键都会被已经
  • 动态更新ViewPager?

    我无法更新 ViewPager 中的内容 FragmentPagerAdapter 类中 instantiateItem 和 getItem 方法的正确用法是什么 我仅使用 getItem 来实例化并返回我的片段 Override publ
  • Cordova 3.1.0:找不到插件或不是 CDVPlugin

    我正在尝试构建我的第一个 Cordova 应用程序 但无法使用插件 我的应用程序是使用 Cordova 命令行界面构建的 因此我以这种方式添加了相机插件 cordova plugin add https git wip us apache
  • 无法在 WorkManager 中设置自定义工作工厂

    我使用此代码来设置我自己的工人工厂 val daggerWorkerFactory DaggerWorkerFactory toInjectInWorker val configuration Configuration Builder s
  • 如何通过 3d 到 2d 点对应估计相机位姿(使用 opencv)

    你好 我的目标是发展用于飞机 模拟器 驾驶舱的头部跟踪功能 以提供AR支持民用飞行员在视觉条件较差的情况下着陆和飞行 我的方法是检测我知道其 3D 坐标的特征点 在黑暗模拟器 LED 中 然后计算估计的 头戴式相机的 姿势 R t 旋转与平
  • 如何在 Matlab 中从 3D 矩阵制作视频

    我在 matlab 中有一大堆 2D 矩阵 它们应该组成一个 3D 矩阵 其中第三维是时间 我正在尝试从图像数据制作视频 我知道我可以使用 surf 使用二维矩阵之一制作曲面图 但我不确定要调用哪个命令来获取所有二维矩阵并将它们转换为曲面图
  • 带有自定义 ListView 的 DialogFragment

    我正在尝试创建一个 DialogFragment 它显示一个带有自定义 ListView 的对话框 public class MultiSelectDialogCustom extends DialogFragment ListView m
  • 如何使用流减少保留所有列表列表

    我面临以下问题 我有一个列表列表 我只想保留所有列表 我正在尝试处理流 private List
  • 如何在每次单击按钮时旋转 imageview 中的图像?

    这是java代码 我从图片库获取图像 我有一个按钮和一个ImageView 它只旋转一次 当我再次单击按钮时 它不会旋转图像 public class EditActivity extends ActionBarActivity priva
  • 为什么我无法使用 AT 命令接收短信?

    我想使用 AT 命令从我的电脑向我的手机发送 接收短信 我使用 USB 端口将手机连接到电脑 我的计算机检测到调制解调器 并且我能够从计算机向手机发送短信 但是我的电脑收不到短信 我正在展示我从 AT 编辑器获得的示例 AT CMGF 1
  • 如何在Xaml中单击时更改按钮内容?

    我有名为 保持按钮 的按钮内容 一旦我单击按钮 按钮内容应更改为 恢复 再次如果按下 恢复 按钮 则意味着 保持 应可见 XAML 代码
  • Intent 和 setContentView 之间的区别

    在我的主要活动中 加载视图作为意图或使用 setContentView 之间有区别吗 public class MainActivity extends Activity Override public void onCreate Bund
  • 理解 matplotlib 顶点

    我正在尝试在 matplotlib 中为散点图创建自定义标记 其中标记是具有固定高度和变化宽度的矩形 每个标记的宽度是 y 值的函数 我尝试过这样使用这段代码作为模板并假设如果给定 verts 一个 N 二维元组的列表 它会绘制具有相应第一