Python的3D可视化库【vedo】2-1 (plotter模块) 绘制器的使用
文章目录
- 1 相关用语及其关系
- 2 Plotter类的基本使用
- 3 Plotter类具体的初始化设置
- 3.1 全部初始化参数
- 3.2 使用不同的axes
vedo是Python实现的一个用于辅助科学研究的3D可视化库。
vedo的plotter模块封装了绘制器类Plotter。
Plotter实例可以用于显示3D图形对象、控制渲染器行为、操控相机、创建事件以及导出3D数据。几乎所有关于3D图形的操作,都是在Plotter渲染的窗口进行的。
vedo的
applications模块提供了各种高级功能,其中的类全部继承自Plotter。
参考:vedo官方文档
1 相关用语及其关系
- 绘制器
plotter
Plotter类的实例,控制绘制、渲染、事件等。
绘制器实例是单例的,程序内部创建的实例都是同一个。 - 渲染器
renderer
渲染器是进行图形渲染的对象。
它是Plotter实例的属性,plt.renderer访问当前的渲染器。Plotter实例可以有多个渲染器,通过plt.renderers访问渲染器列表。 - 屏幕
screen
电脑显示器的屏幕。 - 窗口
window
绘制器调用show()方法时,会弹出窗口,展示绘制的图形,用户可以使用鼠标键盘进行3D交互。 - 窗格
grid
绘制器拥有多个渲染器时,会把窗口分割为对应数量的窗格,每个窗格分配一个渲染器。 - 场景
scene
渲染器渲染的3D场景,包含3D物体、光效和各种标记。通过窗格展示,理论上是无限大的。 - 相机
camera
用户观看场景的视点,是用户和3D场景的相对位置和朝向。
相机的位置和方向属性决定了3D场景渲染后投影到2D窗格(视口)的图像。
2 Plotter类的基本使用
# 创建Plotter实例
plt = vedo.Plotter()
# 弹出窗口,渲染3D图像
plt.show(interactive=True)
这里没有添加任何图形,因此显示空白窗口:

3 Plotter类具体的初始化设置
3.1 全部初始化参数
shape=(1, 1)
(行, 列),表示多个渲染器窗格的排列方式。
如果已指定参数N,shape参数就不可再指定。N=None
渲染器的数目,会将窗口分为若干个窗格,每个窗格分配一个渲染器。
N不为None时,窗格会自动按照窗口大小确定合适的行数和列数。pos=(0, 0)
渲染窗口相对于屏幕左上角的坐标位置,单位为像素。size="auto"
渲染窗口的大小。填auto时,基于屏幕大小展示。screensize="auto"
显示器屏幕的物理大小。在有多个渲染器时,会用来计算每个窗格的大小。title="vedo",窗口的标题。bg="white"
背景颜色,或背景图片的路径。bg2=None
向顶部渐变的背景颜色。axes=None
轴类别。可以代表不同类别轴的整数值。也可以填一个表示轴的字典。sharecam=True
默认为真,表示分格的各个渲染器统一使用一个相机。
为假时每个渲染器会有独立的相机。如图,不同渲染器的相机可以朝向不同角度。

resetcam=True
按照可见的actors对象列表,自动设置相机的位置。
相机会对焦到它们的中心点,并沿着视平面法线平移,使这些演员对象都出现在视野里。
每个渲染器都有自己的actors列表,当前渲染器会以它自己的actors调整相机位置。
当sharecam=True时,所有的渲染器都使用第一个渲染器的相机。这可能会导致其它渲染器把图形显示在屏幕外,尤其是在该渲染器的actors对象中心点与首个渲染器的actors的中心点相距较远的时候。这时最好设置sharecam=False,每个渲染窗格独立对焦。interactive=None
为真时会在调用show()之后暂停,以进行3D交互。offscreen=False
为真时不显示渲染窗口。qt_widget=None
在Qt-Widget窗口中进行渲染。需要使用PyQt5库的QVTKRenderWindowInteractor对象。wx_widget=None
在wxPython定义的窗口中进行渲染。
3.2 使用不同的axes
axes表示轴类别,可以通过0-14的数值表示:
| axes值 | 轴类型说明 |
|---|---|
| 0 | 默认情况,没有轴; |
| 1 | 绘制灰色的三面网格墙; |
| 2 | 从(0, 0, 0)开始的笛卡尔坐标系; |
| 3 | 从(0, 0, 0)开始的笛卡尔坐标系的正方向; |
| 4 | 在左下角显示一个小坐标轴,表示图形当前的方向和位置; |
| 5 | 在左下角显示一个方位立方体; |
| 6 | 标记边界框的8个角。 |
| 7 | 在笛卡尔坐标系的每边绘制3D标尺; |
| 8 | 显示VTKCubeAxesActor对象; |
| 9 | 显示边界框的轮廓; |
| 10 | 绘制三个圆,表示最大边界框; |
| 11 | 在x-y平面显示巨型网格;缩放等级是8; |
| 12 | 显示一个极坐标轴; |
| 13 | 窗口底部显示一个普通的标尺。 |
| 14 | 在右上角绘制一个相机方向控件; |
除了上述值外,也可以指定表示轴参数的字典axes=dict()。
在addons模块的Axes方法中有详细的轴字典参数说明。
# 展示两个示例球体
s1 = vedo.Sphere(r=0.3, pos=(3, 3, 3))
s2 = vedo.Sphere(r=0.3, pos=(-3, -3, -3))
# 显示轴
plt = vedo.Plotter(axes=1)
plt.show(s1, s2)
14种轴如下图所示:





axes=6时显示的框暂时存在BUG。
以上是plotter模块绘制器Plotter使用的基础。
Plotter类的方法较多,后续将把它们分组整理。
更多关于数据可视化的内容参考:Python数据可视化笔记
相关文章:
Python的3D可视化库【vedo】2-1 (plotter模块) 绘制器的使用
文章目录 1 相关用语及其关系2 Plotter类的基本使用3 Plotter类具体的初始化设置3.1 全部初始化参数3.2 使用不同的axes vedo是Python实现的一个用于辅助科学研究的3D可视化库。 vedo的plotter模块封装了绘制器类Plotter。 Plotter实例可以用于显示3D图形对象、控制渲染器行为、…...
6.1 初探MapReduce
MapReduce是一种分布式计算框架,用于处理大规模数据集。其核心思想是“分而治之”,通过Map阶段将任务分解为多个简单任务并行处理,然后在Reduce阶段汇总结果。MapReduce编程模型包括Map和Reduce两个阶段,数据来源和结果存储通常在…...
【数模学习笔记】模糊综合评价
声明:以下笔记中的图片均来自“数学建模学习交流”清风老师的课程ppt,仅用作学习交流使用 模糊综合评价 文章目录 模糊综合评价模糊数学经典集合和模糊集合的基本概念经典集合和特征函数模糊集合和隶属函数模糊集合的分类 隶属函数的确定方法方法一 模糊…...
【C语言】库函数常见的陷阱与缺陷(四):内存内容操作函数[1]--memcmp
目录 一、功能与用法 1.1. 功能 1.2. 场景用法 二、陷阱与缺陷 2.1. 比较范围限制问题 2.2. 数据类型兼容性隐患 2.3. 其它 三、安全使用建议 四、代码示例 在 C 语言编程的世界里,内存内容操作函数宛如精密的工具,肩负着操控内存数据的重任。它们能灵活地复制、移动…...
jmeter CLI Mode 传参实现动态设置用户数
一.需求 CLI 运行模式下每次运行想要传入不同的用户数,比如寻找瓶颈值的场景,需要运行多次设置不同的用户数。 二.解决思路 查看官方API Apache JMeter - Users Manual: Getting Started api CLI Mode 一节中提到可以使用如下参数做属性的替换&#…...
数据库和SQL的基本概念
目录 定义数据分类非结构化数据:半结构化数据 : 结构化数据 : SQL(Structured Query Language)概念分类 数据库管理概念理解 定义 数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。 数据库是长期储存在计算机内、有组织的…...
CSS系列(9)-- Transform 变换详解
前端技术探索系列:CSS Transform 变换详解 🔄 致读者:探索 CSS 变换的魔力 👋 前端开发者们, 今天我们将深入探讨 CSS Transform,学习如何创建引人注目的 2D 和 3D 变换效果。 2D 变换基础 Ὠ…...
一些浅显易懂的IP小定义
IP归属地(也叫IP地址,IP属地) 互联网协议地址,每个设备上的唯一的网络身份证明。用于确保网络数据能够精准传送到你的设备上。 基于IP数据云全球IP归属地解析,示例Python代码 curl -X POST https://route.showapi.co…...
C 语言动态爱心代码
C 语言动态爱心代码 代码 #include <stdio.h> #include <math.h> #include <windows.h> #include <tchar.h> float f(float x, float y, float z) {float a x * x 9.0f / 4.0f * y * y z * z - 1;return a * a * a - x * x * z * z * z - 9.0f / …...
【Figma_01】Figma软件初始与使用
Figma初识与学习准备 背景介绍软件使用1.1 切换主题1.2 官方社区 设计界面2.1 创建一个项目2.2 修改文件名2.3 四种模式2.4 新增界面2.5 图层2.6 工具栏2.7 属性栏section透明度和圆角改变多边形的边数渐变效果描边设置阴影等特效拖拽相同的图形 背景介绍 Ul设计:User Interfa…...
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
文章目录 PyQt5 超详细入门级教程前言序篇:1-3部分:PyQt5基础与常用控件第1部分:初识 PyQt5 和安装1.1 什么是 PyQt5?1.2 在 PyCharm 中安装 PyQt51.3 在 PyCharm 中编写第一个 PyQt5 应用程序1.4 代码详细解释1.5 在 PyCharm 中运…...
day2 数据结构 结构体的应用
思维导图 小练习: 定义一个数组,用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息,删除后调用显示学…...
CSS 进阶教程:从定位到动画与布局
文章目录 🌟 CSS 进阶教程:从定位到动画与布局🌟 目录🌟 1. 定位**Static(默认定位)****Relative(相对定位)****Absolute(绝对定位)****Fixed(固定…...
Nginx性能优化全方案:打造一个高效服务器
Nginx性能优化全方案:打造一个高效服务器 调整工作进程数和线程数调整工作进程数调整线程数 启用Gzip压缩安装Gzip模块配置Gzip压缩 配置缓存策略配置浏览器缓存时间配置代理服务器缓存时间 优化文件访问方式使用sendfile()函数发送文件数据启用sendfile_max_chunk和…...
详解Maven的setting配置文件中mirror和repository的区别
在Maven的setting中,我们常常会用到mirror和repository配置,其中mirror是镜像的意思,而repository则是仓库的意思,它们两者都可以改变maven下载项目以来jar包的地址。 仓库(repository) repository就是个…...
框架模块说明 #07 API加密
背景 在实际开发过程中,我们通常会涉及到数据加密的问题。本文重点探讨两个方面:一是外部接口调用时的数据加密,二是服务间调用的数据加密与解密。 对于外部接口调用,每个用户将拥有独立的动态 AES 加密密钥(KEY&…...
安卓BLE蓝牙开发经验分享
注意点一:一开始必须申请权限,否则后面根本无法成功。 注意点二:BLE使用向某个特征写入来发送数据,写入一次默认长度是23字节,必须向蓝牙设备申请更大字节的写入才能发送更多字节。(23字节是BLE通信的最小…...
后缀表达式有什么场景应用
后缀表达式(Reverse Polish Notation, RPN)在多个领域中有广泛的应用,主要由于其简洁性和易于计算机处理的特点。以下是一些主要的应用场景: ### 1. **编译器和解释器** 后缀表达式在编译器和解释器中用于表达式求值。由于后缀表…...
使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构(未做共享存储版)
文章目录 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构Redis 主从架构部署 (1.yaml)Redis Sentinel 部署 (2.yaml)Sentinel 服务暴露 (3.yaml)部署步骤总结 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构 本文将详细介绍如何在 Kubernetes 中部署 Redis …...
AI开发 - 用GPT写一个GPT应用的真实案例
就在昨天,我的同事推荐给我了一个第三方的公共大模型API,这个API集合了国际上上几乎所有知名的大模型,只需要很少的费用,就可以接入到这些大模型中并使用它们。成本之低,令人乍舌!包括我们现在无法试用的 G…...
AD23新手必看:从画完PCB到嘉立创成功下单Gerber,保姆级避坑指南
AD23新手必看:从画完PCB到嘉立创成功下单Gerber,保姆级避坑指南 第一次用Altium Designer 23完成PCB设计后,面对Gerber文件导出和嘉立创下单的复杂流程,很多新手都会感到手足无措。本文将从实际经验出发,带你一步步避开…...
别再折腾环境了!手把手教你用Texlive 2022 + Texstudio 4.4.1 一键搞定西电XDUTS论文模板
西电LaTeX论文写作终极指南:Texlive 2022与Texstudio 4.4.1高效配置方案 每到毕业季,总有一群学生在深夜的实验室里对着报错的LaTeX界面抓狂。去年此时,我也曾是其中一员——连续三天尝试配置西电XDUTS论文模板未果,直到在一位学…...
MCP电路设计:从门电路到CPLD的优先级仲裁硬件实现
1. 项目概述:从“命令打架”到“有序排队”的电路设计在嵌入式系统、工业控制或者任何需要处理多路信号的数字电路里,我们经常会遇到一个头疼的问题:当多个输入信号同时要求一个输出设备执行不同动作时,系统该听谁的?比…...
别只盯着apt-get install:深入理解Linux头文件路径与编译器搜索机制的坑
别只盯着apt-get install:深入理解Linux头文件路径与编译器搜索机制的坑 当你在Linux环境下进行C/C开发时,是否曾遇到过这样的场景:明明已经安装了所有看似必要的依赖包,却依然被fatal error: drm.h: No such file or directory这…...
如何免费打造终极跨平台音乐播放器:一站式解决你的所有音乐需求
如何免费打造终极跨平台音乐播放器:一站式解决你的所有音乐需求 【免费下载链接】VutronMusic 高颜值的第三方网易云播放器;支持流媒体音乐,如navidrome、jellyfin、emby;支持本地音乐播放、离线歌单、逐字歌词、桌面歌词、Touch …...
缺失数据可视化图表开发实战|Highcharts创建人员出生统计面积图表示例
完整可运行代码<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>面积图 - 男孩姓名出生人数</t…...
如何快速配置Live Server Web Extension:提升开发效率的完整指南
如何快速配置Live Server Web Extension:提升开发效率的完整指南 【免费下载链接】live-server-web-extension It makes your existing server live. This is a browser extension that helps you to live reload feature for dynamic content (PHP, Node.js, ASP.N…...
基于OpenCV-Python的指针式仪表视觉检测技术深度解析与工程实现
基于OpenCV-Python的指针式仪表视觉检测技术深度解析与工程实现 【免费下载链接】MeterReadV2 指针式仪表读数python程序 项目地址: https://gitcode.com/gh_mirrors/me/MeterReadV2 在工业自动化与智能制造领域,指针式仪表的自动化读数一直是数据采集环节的…...
在 Hermes Agent 项目中集成 Taotoken 实现自定义模型调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Hermes Agent 项目中集成 Taotoken 实现自定义模型调用 对于正在使用 Hermes Agent 框架构建智能体应用的开发者而言࿰…...
Navicat Mac终极重置指南:3种简单方法快速恢复试用期
Navicat Mac终极重置指南:3种简单方法快速恢复试用期 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 你是否正在使…...
