在 Python 中将 2D 图形转换为圆柱体

2024-01-09

At the moment I have a figure that looks like this,enter image description here

由代码生成:

import matplotlib.pyplot as plt

import numpy as np

data = np.random.rand(20,5)
rows,cols = data.shape

plt.imshow(data, interpolation='nearest', extent=[0.5, 0.5+cols, 0.5,   0.5+cols], cmap='bwr')
plt.show()

不过,我想将其“折叠”成 3D 圆柱体,连接左右边缘(就像处理一张纸一样)。换句话说,左边缘和右边缘实际上是同一条边缘,所以我想将它们连接在一起形成一个圆柱体。

我该怎么做呢?


The Poly3DCollection是任意 3D 多边形的选择方法mplot3d.

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

nphi,nz=12,20
r=1 # radius of cylinder
phi = np.linspace(0,360, nphi)/180.0*np.pi
z= np.linspace(0,1.0,nz)
print z

facecolors=['r','g','b','y']
cols=[]
verts2 = []
for i  in range(len(phi)-1):
    cp0= r*np.cos(phi[i])
    cp1= r*np.cos(phi[i+1])
    sp0= r*np.sin(phi[i])
    sp1= r*np.sin(phi[i+1])

    for j in range(len(z)-1):
        z0=z[j]
        z1=z[j+1]
        verts=[]
        verts.append((cp0, sp0, z0))
        verts.append((cp1, sp1, z0))
        verts.append((cp1, sp1, z1))
        verts.append((cp0, sp0, z1))
        verts2.append(verts)
        value=np.random.rand()
        print value
        col=plt.cm.bwr(value)
        print col
        cols.append(col)

poly3= Poly3DCollection(verts2, facecolor=cols  )  

poly3.set_alpha(0.8)
ax.add_collection3d(poly3)
ax.set_xlabel('X')
ax.set_xlim3d(-1, 1)
ax.set_ylabel('Y')
ax.set_ylim3d(-1, 1)
ax.set_zlabel('Z')
ax.set_zlim3d(0, 1)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中将 2D 图形转换为圆柱体 的相关文章

  • 查找两个字典的匹配键值对

    检查一个字典的键值对是否也存在于其他字典中的最有效方法是什么 假设我有两个字典dict1 and dict2这两个字典有一些共同的键值对 我想找到这些并打印出来 做到这一点最有效的方法是什么 请建议 一种方法是 d inter dict k
  • 在 gtk.main() 执行时与 gtk.container 交互?

    目前在 Python 中使用电池监视器图标进行实验pygtk and egg trayicon创建一个图标来显示电池图标 工具提示 我似乎能够添加图标和工具提示文本 但是当它到达gtk main 阶段我需要一种方法来修改这些 以便它可以显示
  • 如何在 django 中获取复选框值?

    tr td td tr
  • 有没有办法在 Altair 箱线图中格式化工具提示值

    是否可以格式化箱线图工具提示中的值 由此织女星文档 https vega github io vega lite docs boxplot html tooltip encoding channels 看起来是这样 但我不太清楚如何使用 A
  • 为什么any (True for ... if cond) 比any (cond for ...) 快得多?

    检查列表是否包含奇数的两种类似方法 any x 2 for x in a any True for x in a if x 2 计时结果与a 0 10000000 每次尝试五次 次数以秒为单位 0 60 0 60 0 60 0 61 0 6
  • numpy:与索引数组有效求和

    假设我有 2 个矩阵 M 和 N 都有 gt 1 列 我还有一个索引矩阵 I 有 2 列 1 列代表 M 一列代表 N N 的索引是唯一的 但 M 的索引可能出现多次 我想要执行的操作是 for i j in w M i N j 除了 fo
  • SparkSession 初始化需要很长时间

    SparkSession 初始化需要很长时间才能成功 这是我的代码 import findspark findspark init import pyspark from pyspark sql import SparkSession sp
  • 在 Windows 上的 python2.5 上安装 Openpyxl

    我努力了easy install install openpyxl and python setup install 两者都失败了 我也尝试过easy install openpyxl并再次失败 我包括了我得到的输出 当我尝试时easy i
  • 使用 scikit-learn 在朴素贝叶斯分类器中混合类别数据和连续数据

    我正在使用 Python 中的 scikit learn 开发分类算法来预测某些客户的性别 除此之外 我想使用朴素贝叶斯分类器 但我的问题是我混合了分类数据 例如 在线注册 接受电子邮件通知 等 和连续数据 例如 年龄 长度 会员资格 等
  • 无法解析 ReferenceProperty -- App Engine

    我遇到了一个错误 无法找出其根本原因 错误如下 ReferenceProperty 无法解析 u StatusLog STATUSLOGSID 此错误仅有时发生 大约一天一次或两次 生成此错误的脚本成功的次数多于失败的次数 该错误最奇怪的事
  • 群组名称不能以数字开头?

    看来我不能使用像这样的正则表达式 P lt 74xxx gt 0 9 重新打包会引发错误 sre constants error bad character in group name u 74xxx 我似乎无法使用以数字开头的组名称 为什
  • Pandas 使用 NaN 进行数据透视或重塑数据框

    我有这个数据框 我需要根据以下数据进行旋转或重塑frame col df frame 0 0 1 1 2 2 3 0 4 1 5 2 pvol 0 nan 1 nan 2 nan 3 23 1 4 24 3 5 25 6 vvol 0 10
  • 从 Java 调用 Python 代码时出现问题(不使用 jython)

    我发现这是从 java 运行 使用 exec 方法 python 脚本的方法之一 我在 python 文件中有一个简单的打印语句 但是 我的程序在运行时什么也没做 它既不打印Python文件中编写的语句 也不抛出异常 程序什么都不做就终止了
  • 函数调用中的星号[重复]

    这个问题在这里已经有答案了 我正在使用 itertools chain 以这种方式 展平 列表列表 uniqueCrossTabs list itertools chain uniqueCrossTabs 这与说有什么不同 uniqueCr
  • 在IPython笔记本中自动播放声音

    我经常在 IPython 笔记本中运行长时间运行的单元 我希望笔记本在单元完成执行时自动发出蜂鸣声或播放声音 有没有办法在 iPython 笔记本中执行此操作 或者我可以在单元格末尾放置一些命令来自动播放声音 我正在使用 Chrome 如果
  • 确定 pyInstaller 生成的 Python EXE 中的应用程序路径

    我有一个驻留在单个 py 文件中的应用程序 我已经能够让 pyInstaller 将其成功捆绑到 Windows 的 EXE 中 问题是 应用程序需要一个 cfg 文件 该文件始终直接位于应用程序旁边的同一目录中 通常 我使用以下代码构建路
  • 使用 python pyad 访问对象 [] 时出现问题

    我在尝试使用 pyad 访问活动目录用户属性时遇到问题 这是我的代码 user pyad aduser ADUser from cn tuser print user get attribute lastLogonTimestamp 这些是
  • WTforms 表单未提交但不输出验证错误

    我正在尝试使用以下方式上传文件flask uploads工作和遇到一些障碍 我会告诉你我的flask查看函数 html 希望有人能指出我缺少的内容 基本上发生的情况是我提交了表格但失败了if request method POST and
  • 在 kivy 中嵌套小部件

    我正在尝试在 kivy 中制作一个界面 我认为即使在完成教程之后 我仍然不了解自定义小部件以及如何对它们进行层次结构的一些基本知识 我认为我有更多的盒模型 html 思维方式 因此小部件嵌套在本机 GUI 中的方式对我来说仍然有点陌生 一些
  • Python tkinter:在组合框中使用“文本变量”似乎没用

    使用textvariable在 tkinter 中创建组合框时的属性似乎完全没用 有人可以解释一下目的是什么吗 我查看了 Tcl 文档 它说textvariable用于设置默认值 但看起来在 tkinter 中您只需使用 set方法来做到这

随机推荐

  • Xcode 无法导入 tapku 或 kal 库

    我在导入 tapku 库 使用它提供的日历 api 时遇到问题 我也尝试过 Kal 遇到同样的问题 这是我导入它的方法 如果我遗漏了什么 请告诉我 使用 Xcode 4 5 转到文件 gt 将文件添加到项目 gt TapkuLibrary
  • .NET 7 Blazor MAUI - 需要使用 Azure 用户登录进行身份验证

    我正在开发 Blazor MAUI 应用程序 并且我试图要求组织中的用户使用其 Microsoft 工作帐户登录才能访问该应用程序 我在 Blazor MAUI 中找不到太多有关身份验证的文档 并且一直在努力寻找可行的解决方案 目前 我一直
  • Android:View.getTag/setTag 和 IllegalArgumentException

    是的 我知道在调用这些需要密钥的函数版本时 您需要一个唯一的资源 ID 但我一生都无法弄清楚如何创建可以这种方式使用的资源 ID 我的类中的最终变量不起作用 硬编码值也不起作用 两者都抛出了 IllegalArgumentException
  • 如何获取维基百科页面的所有链接及其维基数据 ID?

    什么时候 以下的事情可能实现 在单个查询 API 调用中获取维基百科页面上的所有链接及其各自的维基数据 ID 的列表 通过查询接收各个维基数据项的附加信息 例如属性值 要获取您必须使用的所有维基百科页面链接维基百科API https en
  • 如何从 PDF 中提取数据?

    我的公司通过 Excel 从外部公司接收数据 我们将其导出到 SQL Server 以运行数据报告 他们现在正在更改为PDF格式 有没有办法可靠地从PDF中移植数据并将其插入到我们的SQL Server 2008数据库中 这是否需要编写一个
  • 如何使用GCC将C代码编译为8088汇编?

    我一直在寻找一条信息 但似乎找不到它 也许你们可以帮助我 这是一个简单的问题 如何使用GCC将C代码编译成8088汇编 我正在用 8088 汇编语言编写一个小程序 想知道编译器是如何完成某些事情的 这真的很棒 Thanks djgpp 有一
  • 如何在 Python 中创建 Socket.io 客户端以与 Sails 服务器通信

    我正在运行一个SailsJS我有一个控制器的实例 v0 12 3 我的模型控制器处理 WebSocket socket io 如果用户已通过身份验证 则允许连接 我的模型控制器 module exports Socket connectio
  • 如何使 VS2010 优先选择一个包含目录而不是另一个?

    我正在尝试使用XInput h来自 DirectX SDK 的文件 但此文件也存在于 Windows SDK 中 并且它是该文件的不同变体 我尝试过添加 DXSDK DIR Include 到在项目设置中包含目录 之前和之后 Include
  • 保持分支与 master 保持同步

    我有一个远程存储库 我已从该存储库中提取并从中分支 我想让新分支与 master 所做的更改保持同步 我正在考虑下面的工作流程 它是否有意义或者是否有更好的方法来做到这一点 初始分支和结账 git checkout master git p
  • 未定义的偏移量:1

    在我当前的 PHP 脚本中出现此错误 未定义的偏移量 1 我的代码在这里 query SELECT item id username item content FROM updates ORDER BY update time DESC L
  • 有没有办法在Android中使用Paging Library 3.0实现基于光标的分页?

    我正在使用一个 REST API 它使用基于游标的分页来显示一些结果 我想知道我是否可以使用分页库3 0 https developer android com topic libraries architecture paging v3
  • C++17:使用通用可变参数 lambda 包装可调用对象

    我想将任何类型的可调用对象 例如 lambda 透明地包装在另一个可调用对象中以注入附加功能 包装器的类型应与原始可调用对象具有相同的特征 相同的参数类型 相同的返回类型 完美转发传递的参数 在 SFINAE 构造中使用时具有相同的行为 我
  • underscore.js 嵌套模板

    是否有可能以某种方式从下划线模板中获取 DOM 元素并将其用作另一个模板 我的想法是 我的应用程序需要呈现一个包含带有项目和摘要的循环的文档 我偶尔需要重新渲染摘要或几个项目 所以我不能只重新渲染整个文档 但是 我希望应用程序用户能够简单地
  • AWS.IAM 不是构造函数 JavaScript SDK

    我正在使用AWSJavaScript SDK Both var s3 new AWS S3 var dynamodb new AWS DynamoDB 工作正常 当我尝试时 var iam new AWS IAM 我看到 类型错误 AWS
  • Flume的Spool Dir可以在远程机器上吗?

    每当新文件到达特定文件夹时 我就尝试将文件从远程计算机获取到我的 hdfs 我在flume中遇到了spool dir的概念 如果spool dir位于运行flume代理的同一台机器上 那么它工作得很好 有什么方法可以在远程计算机中配置假脱机
  • ORA-01830-插入日期和时间[重复]

    这个问题在这里已经有答案了 我有以下字符串值 15 01 2023 18 03 42 我尝试将其插入到 Oracle 中的日期列中 然而 这会产生可怕的 ORA 01830 错误 insert into my schema my table
  • MKAnnotation Swift

    我不确定如何用 swift 语言注释地图 我不知道如何创建 NSObject 类 以下是我尝试过但无法运行的代码 import Foundation import MapKit class MapPin MKAnnotation var m
  • 如何平滑 MATLAB 中的绘图?

    我在图表上绘制了大约 9000 个点 全分辨率 https i stack imgur com VeIP5 jpg 其实剧情并没有我想象的那么顺利 有什么方法可以将图表平滑到所需的程度吗 或者某种形式的阈值处理 以便我可以有选择地平滑太凹凸
  • VBA 参考库

    我是 VBA 新手 一直在为 Office 编写一个小型宏应用程序 我们有大约 80 个用户 他们的电脑设置基本相同 除了少数用户之外 所有用户都可以访问它 我一直在尝试使用 Web 服务引用来自动访问网页 并且我还将 Microsoft
  • 在 Python 中将 2D 图形转换为圆柱体

    At the moment I have a figure that looks like this 由代码生成 import matplotlib pyplot as plt import numpy as np data np rand