在 matplotlib 中使用 PolyCollection 进行绘图

2023-12-03

我正在尝试在 matplotlib 中绘制 3 维图。我必须在单个 3D 图中绘制四个(或多个)半径的频率与幅度分布。我正在查看 matplotlib.collections 中可用的 PolyCollection 命令,并且还浏览了该示例,但我不知道如何使用现有数据来得出绘图。

我拥有的数量的维度是,

频率:4000 x 4, 振幅:4000 x 4, 半径:4

I would like to plot something like, enter image description here

X 轴是频率,Y 轴是半径,Z 轴是振幅。我该如何解决这个问题?


PolyCollection 需要一系列顶点,这与您所需的数据非常匹配。您没有提供任何示例数据,因此我将弥补一些示例(我的尺寸 200 将是您的 4000 ....尽管如果您有这么多数据点,我可能会考虑与此不同的图):

import matplotlib.pyplot as plt
from matplotlib.collections import PolyCollection
from mpl_toolkits.mplot3d import axes3d
import numpy as np

# These will be (200, 4), (200, 4), and (4)
freq_data = np.linspace(0,300,200)[:,None] * np.ones(4)[None,:]
amp_data = np.random.rand(200*4).reshape((200,4))
rad_data = np.linspace(0,2,4)

verts = []
for irad in range(len(rad_data)):
    # I'm adding a zero amplitude at the beginning and the end to get a nice
    # flat bottom on the polygons
    xs = np.concatenate([[freq_data[0,irad]], freq_data[:,irad], [freq_data[-1,irad]]])
    ys = np.concatenate([[0],amp_data[:,irad],[0]])
    verts.append(list(zip(xs, ys)))

poly = PolyCollection(verts, facecolors = ['r', 'g', 'c', 'y'])
poly.set_alpha(0.7)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# The zdir keyword makes it plot the "z" vertex dimension (radius)
# along the y axis. The zs keyword sets each polygon at the
# correct radius value.
ax.add_collection3d(poly, zs=rad_data, zdir='y')

ax.set_xlim3d(freq_data.min(), freq_data.max())
ax.set_xlabel('Frequency')
ax.set_ylim3d(rad_data.min(), rad_data.max())
ax.set_ylabel('Radius')
ax.set_zlim3d(amp_data.min(), amp_data.max())
ax.set_zlabel('Amplitude')

plt.show()

Most of this is straight from the example you mention, I just made it clear where your particular datasets would lie. This yields this plot: example PolyCollection plot

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

在 matplotlib 中使用 PolyCollection 进行绘图 的相关文章

  • Python 2.7 将比特币私钥转换为 WIF 私钥

    作为一名编码新手 我刚刚完成了教程 教程是这样的 https www youtube com watch v tX XokHf nI https www youtube com watch v tX XokHf nI 我想用 1 个易于阅读
  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 登录网站并使用 python 请求下载文件

    我有一个带有 HTML 表单的网站 登录后 它会将我带到 start php 站点 然后将我重定向到overview php 我想从该服务器下载文件 当我单击 ZIP 文件的下载链接时 链接后面的地址是 getimage php path
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 与 while 循环一样,如何跳过 for 循环中的步骤?

    我尝试像 while 循环一样跳过 for 循环中的几个步骤 在 while 循环中 步骤根据特定条件进行调整 如下面的代码所示 i 0 while i lt 10 if i 3 i 5 else print i i i 1 result
  • django-admin.py makemessages 不起作用

    我正在尝试翻译一个字符串 load i18n trans Well Hello there how are you to Hola amigo que tal 我的 settings py 文件有这样的内容 LOCALE PATHS os
  • Pandas style.bar 颜色基于条件?

    如何渲染其中一列的 Pandas dfstyle bar color属性是根据某些条件计算的 Example df style bar subset before after color ff781c vmin 0 0 vmax 1 0 而
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • 解析根元素内元素之间的 XML 文本

    我正在尝试用 Python 解析 XML 以下是 XML 结构的示例 a aaaa1 b bbbb b aaaa2 a
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • 无法在 python 3.8 上将带有 webapp 的 python 部署到 azure

    我正在尝试使用部署一个测试项目Flask使用以下方法将框架迁移到 Azure 云中Azure CLI https learn microsoft com en us azure app service containers quicksta
  • 对数据帧的每 2 小时数据进行 Groupby

    我有一个数据框 Time T201FN1ST2010 T201FN1VT2010 1791 2017 12 26 00 00 00 854 69 0 87 1792 2017 12 26 00 20 00 855 76 0 87 1793
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • 如何为所有用户安装 Anaconda python?

    Anaconda python 发行版 https store continuum io cshop anaconda 非常方便地部署科学计算环境 SCE 并根据需要切换python版本 默认情况下 安装会将 python 定位到 anac
  • python sklearn中的fit方法

    我问自己关于 sklearn 中拟合方法的各种问题 问题1 当我这样做时 from sklearn decomposition import TruncatedSVD model TruncatedSVD svd 1 model fit X
  • 长/宽数据到宽/长

    我有一个数据框 如下所示 import pandas as pd d decil 1 decil 1 decil 2 decil 2 decil 3 decil 3 decil kommune AA BB AA BB AA BB 2010

随机推荐

  • 如何在 Perl 中解析 strftime 格式的字符串?

    我是 Perl 新手 我想知道是否有 strftime 的反函数 看 use POSIX qw strftime print strftime YT mT d TTTT H M S localtime 我得到 2009T08T14 TTTT
  • Entity Framework Core 1.0 CurrentValues.SetValues() 不存在

    我正在尝试使用 Entity Framework Core 1 0 RC 1 更新实体及其相关子实体 其中实体与 DbContext 分离 我之前已经使用类似于此中描述的解决方案完成了此操作answer 但是 我们似乎不再能够使用 Enti
  • 不使用 64 位 int 将两个 32 位数字相乘

    我们正在使用以下算法进行一些 32 位 32 位乘法 让我们想要将 a 32 位 与 b 32 位 相乘 两者都有符号 a ah 2 16 al ah 高 16 位 al 低 16 位 b bh 2 16 bl bh 高 16 位 bl 低
  • delphi服务应用程序在15秒后停止,计时器不执行

    我想在 Delphi 中制作服务应用程序 每天下午 02 00 运行并复制一些文件 所以我用了定时器 但控制不会发生计时器事件并且服务会在 15 秒内终止 我写了一个关于定时器事件的代码 如何在服务中使用计时器 请帮忙 提前致谢 我的代码在
  • setTimeout(myFunction, 5000); vs setTimeout(myFunction(), 5000);

    我正在研究 setTimeout 函数 此代码按预期运行 function myFunction console log test setTimeout myFunction 1000 myFunction 它将每隔一个 测试 打印到控制台
  • 如何用 pandas 对浮点数进行分类

    这段代码一直有效 直到我将 python 2 x 升级到 3 x 我有一个由 3 列 ipk1 ipk2 ipk3 组成的 df ipk1 ipk2 ipk3 由浮点数 0 4 0 组成 我想把它们装进字符串中 数据看起来像这样 ipk1
  • Eclipse 中 Storm 集群关闭

    我有一个问题 我知道有麻烦 但找不到解决方案 集群没有关闭 抛出 IOException I O 方法不起作用 因为 Windows 不允许临时文件夹 我的意思是这个路径 C Users Mert AppData Local Temp 8b
  • ASP.NET Repeater 中的 ImageButton 不会触发 OnClick 事件处理程序

    我在中继器控件内有一个 ImageButton 我已将事件处理程序附加到 ImageButton 的 OnClick 事件 但是当我单击 ImageButton 时 事件不会被触发 如果我遗漏了什么 请告诉我 谢谢 我已附上 aspx 页面
  • JavaScript 双击事件?

    Scripts var timer var firing false var begen function id alert one click var popupAc function id alert double click func
  • 信箱不可用。服务器响应为:5.7.1 无法中继 [电子邮件受保护] [已关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正进入 状态 信箱不可用 服务器响应为 5 7 1 无法中继 电子邮件受保护 当我尝试使用 ASP NET 发送邮件时 该网站部署在 IIS7 Windows 2008 服务器上
  • Solaris - 为什么 java.lang.UNIXProcess.forkAndExec(Native Method) 挂起

    我有一个在 Solaris 上运行的 java 应用程序 该应用程序使用 Runtime exec 定期启动外部进程 似乎一段时间后 多次成功启动此类进程后 进程的启动将挂起 此时 以及几分钟后 进行的线程转储显示 java lang UN
  • z-index 未正确索引[重复]

    这个问题在这里已经有答案了 好的 这段代码在一个 div 中生成了两个块 顶部块应该越过底部块 因为顶部具有更高的 z index 但是当我给底部块一个 margin top 30px 时 它会超出顶部块 div style width 3
  • Firefox 中忽略网格项目的填充/边距百分比

    This codepen在 Chrome 上创建一个 100 50 px 的红色单元格网格 这是预期的行为 grid display grid grid gap 8px grid template columns 100px 100px c
  • 没有 XML 的 Android AdMob

    我有一个很大的问题要问 因为我真的被这个问题困扰了 它会被创建来在我的免费应用程序上获取广告 好吧 首先我一直在关注这本书 2011年开始Android游戏 http www apress com 9781430230427 现在这本书实现
  • Uniscan:可加载库和 perl 二进制文件不匹配

    Uniscan 是一款用于扫描 kali linux 和其他笔测试发行版中的网站的工具 我曾经每周使用它来测试我的应用程序 但在对我的 Linux 工具进行一些更新后 现在在运行它时出现以下错误 xs Moose c 可加载库和 Perl
  • JS中递归添加字符串

    我正在解决一个递归问题 该问题返回一个 hi 字符串 其中第一个 hi 的大写字母 H 并且该字符串以感叹号结尾 到目前为止 我有下面的代码 但我不确定如何防止随后出现大写 H 的 hi 欢迎任何指导 function greeting n
  • 一种在firefox的urlbar中观察url,并在每次变化时获取事件的方法

    我的 Firefox 扩展需要它 我不关心等待页面完全加载 我只想观察 URL 并在每次更改时获取一个事件 以及当我来回历史记录时 edit I saw URL 变化的观察者 Firefox 扩展 但我想知道是否有更简单的东西 例如每次 u
  • 尝试包含 phpseclib 时无法打开流错误消息

    我正在尝试按照安装 phpseclib 的说明进行操作 我解压了所有内容并创建了一个新的phpseclib文件夹到 usr share pear 所以我有以下结构 usr share pear phpseclib Net Crypt Fil
  • Botframework 在完成当前意图对话框之前不会中断其他意图对话框

    我使用 LUIS ai 实现意图 A 和 B 在意图 A 中我正在使用builder Prompts text向用户询问几个问题 然而 有时根据答案 它会切换到意图 B 我猜它恰好与我的意图 B 相匹配 尽管我认为它不应该 有没有办法防止这
  • 在 matplotlib 中使用 PolyCollection 进行绘图

    我正在尝试在 matplotlib 中绘制 3 维图 我必须在单个 3D 图中绘制四个 或多个 半径的频率与幅度分布 我正在查看 matplotlib collections 中可用的 PolyCollection 命令 并且还浏览了该示例