Python绘制相交平面
该示例演示了在3D中绘制相交平面。这是二维图像到三维的一般化。在mplot3d中绘制相交平面比较复杂因为mplot3d并不是真正的3D渲染器它只是将艺术家Artists投影到3D中并按正确的顺序绘制它们。如果艺术家彼此重叠这种方法就不能正确工作。在此示例中我们通过在平面交点处分段来解决相互重叠的问题将每个平面分成四部分。该示例仅在平面相互平分切割时能够正确工作。这个限制是有意为之以保持代码更易读。虽然在任意位置切割平面是可能的但会使代码更加复杂。因此该示例更多是展示如何绕过3D可视化限制的概念而不是一个可以直接复制粘贴用于绘制任意相交平面的完善解决方案。import matplotlib.pyplot as pltimport numpy as npdef plot_quadrants(ax, array, fixed_coord, cmap):For a given 3d *array* plot a plane with *fixed_coord*, using four quadrants.nx, ny, nz array.shapeindex {x: (nx // 2, slice(None), slice(None)),y: (slice(None), ny // 2, slice(None)),z: (slice(None), slice(None), nz // 2),}[fixed_coord]plane_data array[index]n0, n1 plane_data.shapequadrants [plane_data[:n0 // 2, :n1 // 2],plane_data[:n0 // 2, n1 // 2:],plane_data[n0 // 2:, :n1 // 2],plane_data[n0 // 2:, n1 // 2:]]min_val array.min()max_val array.max()cmap plt.get_cmap(cmap)for i, quadrant in enumerate(quadrants):facecolors cmap((quadrant - min_val) / (max_val - min_val))if fixed_coord x:Y, Z np.mgrid[0:ny // 2, 0:nz // 2]X nx // 2 * np.ones_like(Y)Y_offset (i // 2) * ny // 2Z_offset (i % 2) * nz // 2ax.plot_surface(X, Y Y_offset, Z Z_offset, rstride1, cstride1,facecolorsfacecolors, shadeFalse)elif fixed_coord y:X, Z np.mgrid[0:nx // 2, 0:nz // 2]Y ny // 2 * np.ones_like(X)X_offset (i // 2) * nx // 2Z_offset (i % 2) * nz // 2ax.plot_surface(X X_offset, Y, Z Z_offset, rstride1, cstride1,facecolorsfacecolors, shadeFalse)elif fixed_coord z:X, Y np.mgrid[0:nx // 2, 0:ny // 2]Z nz // 2 * np.ones_like(X)X_offset (i // 2) * nx // 2Y_offset (i % 2) * ny // 2ax.plot_surface(X X_offset, Y Y_offset, Z, rstride1, cstride1,facecolorsfacecolors, shadeFalse)def figure_3D_array_slices(array, cmapNone):Plot a 3d array using three intersecting centered planes.fig plt.figure()ax fig.add_subplot(projection3d)ax.set_box_aspect(array.shape)plot_quadrants(ax, array, x, cmapcmap)plot_quadrants(ax, array, y, cmapcmap)plot_quadrants(ax, array, z, cmapcmap)return fig, axnx, ny, nz 70, 100, 50r_square (np.mgrid[-1:1:1j * nx, -1:1:1j * ny, -1:1:1j * nz] ** 2).sum(0)figure_3D_array_slices(r_square, cmapviridis_r)plt.show()参考文献https://matplotlib.org/stable/gallery/mplot3d/intersecting_planes.html

相关新闻

基于电解槽与甲烷反应器构建低碳综合能源系统优化策略:购能成本、碳排放与弃风成本最小化实践指导文献研究

基于电解槽与甲烷反应器构建低碳综合能源系统优化策略:购能成本、碳排放与弃风成本最小化实践指导文献研究

内容:引入电解槽、甲烷反应器、氢燃料电池等设备,构建以购能成本、碳排放成本、弃风成本最小的低碳经济运行目标,将原问题转化为混合整数线性问题 文献:考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化 MATLABCPLEX 关键词&a…

2026/7/6 5:02:14 阅读更多 →
Flutter 三方库 test_rocket 的鸿蒙化适配指南 - 掌握声明式测试数据工厂技术、助力鸿蒙应用构建高自动化且覆盖全场景的单元测试体系

Flutter 三方库 test_rocket 的鸿蒙化适配指南 - 掌握声明式测试数据工厂技术、助力鸿蒙应用构建高自动化且覆盖全场景的单元测试体系

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 test_rocket 的鸿蒙化适配指南 - 掌握声明式测试数据工厂技术、助力鸿蒙应用构建高自动化且覆盖全场景的单元测试体系 前言 在 OpenHarmony 鸿蒙应用追求稳健交付的工程闭…

2026/7/6 19:56:22 阅读更多 →
滚筒电机编码器——英飞凌TLE5012B方案详解:原理图、PCB布局与源程序应用

滚筒电机编码器——英飞凌TLE5012B方案详解:原理图、PCB布局与源程序应用

滚筒电机编码器 英飞凌磁编码器方案 英飞凌TLE5012B,单片机采用N76E003,滚筒电机编码器,有原理图,PCB,源程序。最近在折腾滚筒电机的编码器方案,试了英飞凌的磁编码器TLE5012B,搭配新唐的N76E00…

2026/7/8 19:36:41 阅读更多 →

最新新闻

77.Android系统源码-Scudo 实战 - Android 安全内存分配器核心技术

77.Android系统源码-Scudo 实战 - Android 安全内存分配器核心技术

Scudo 实战 - Android 安全内存分配器核心技术 源码: external/scudo/standalone (90 个文件, ~17,375 行 C++ 代码) 版本: LLVM 上游 commit 161cca266a9d(2019-09-10 引入 Android),随 AOSP 持续同步 协议: Apache License v2.0 WITH LLVM-exception (NOTICE) 用途: 抵御堆…

2026/7/9 9:57:18 阅读更多 →
为什么有些论文,答辩老师听完研究假设体系,就默认通过?

为什么有些论文,答辩老师听完研究假设体系,就默认通过?

为什么有些论文,答辩老师听完研究假设体系,就默认通过?很多学生以为,论文答辩最重要的是结果分析。有人拼命准备数据解释,有人反复背诵研究结论,还有人担心老师会不会一直追问统计模型。但真正参加过多场答…

2026/7/9 9:55:17 阅读更多 →
终极免费视频压缩方案:如何高效缩减媒体文件90%体积?

终极免费视频压缩方案:如何高效缩减媒体文件90%体积?

终极免费视频压缩方案:如何高效缩减媒体文件90%体积? 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/c…

2026/7/9 9:55:17 阅读更多 →
Testsigma开源测试自动化平台:AI驱动的端到端测试解决方案

Testsigma开源测试自动化平台:AI驱动的端到端测试解决方案

Testsigma开源测试自动化平台:AI驱动的端到端测试解决方案 【免费下载链接】testsigma Testsigma is an agentic test automation platform powered by AI-coworkers that work alongside QA teams to simplify testing, accelerate releases and improve quality a…

2026/7/9 9:51:14 阅读更多 →
慢慢读懂了程序员的普通生活

慢慢读懂了程序员的普通生活

写惯了技术排坑、环境配置、bug复盘的文章,今天不想聊代码,不想聊框架,也不想聊什么进阶优化。单纯想碎碎念一下,做程序员这几年,被代码填满的日子里,那些没人写在技术文档里的生活细节。入行之前&#xff…

2026/7/9 9:49:13 阅读更多 →
TISAX版本切换:从 ISA6.0 到 ISA2027

TISAX版本切换:从 ISA6.0 到 ISA2027

2026 年 7 月 1 日,VDA 与 ENX 正式发布 TISAX 新版评估标准ISA2027,宣告现行 ISA6.0 版本生命周期进入倒计时。新版标准将于 2027 年 1 月 1 日强制实施,并确立以发布年份命名的年度迭代机制。这不仅是版本号的更替,更是汽车信息…

2026/7/9 9:49:13 阅读更多 →

日新闻

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000找不到高质…

2026/7/9 0:01:04 阅读更多 →
ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍 【免费下载链接】ElegantBook Elegant LaTeX Template for Books 项目地址: https://gitcode.com/gh_mirrors/el/ElegantBook 你是否曾经为学术书籍的封面设计而烦恼?想要一个既专业又美观的封…

2026/7/9 0:03:06 阅读更多 →
如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南 【免费下载链接】pyodbc Python ODBC bridge 项目地址: https://gitcode.com/gh_mirrors/py/pyodbc 在当今数据驱动的商业环境中,企业级数据库连接已成为现代应用开发的核心需求。pyodbc作为一款强大…

2026/7/9 0:07:11 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/8 16:59:55 阅读更多 →

月新闻