python画图|3D垂线标记

news2025/1/11 19:39:25

在前述学习过程中,我们学习了二维坐标上的垂线标记画图,链接如下:

python画图|垂线标记系列_python画点相对x轴的垂线-CSDN博客

也学习了3D作图基本方法:

python画图|3D图基础教程-CSDN博客 

现在我们尝试将这二者结合,绘制3D垂线标记图。

【1】官网教程

打开下述链接,直达官网:

https://matplotlib.org/stable/gallery/mplot3d/stem3d_demo.html#sphx-glr-gallery-mplot3d-stem3d-demo-py

官网给出了非常简洁的程序,我们尝试一起解读一下。

【2】代码解读

首先依然是引入numpy用于计算、matplotlib用于绘图。

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

然后定义了一串变量,这里使用高等数学参数化定义函数的方法,先定义一个参数theta,然后将x、y和z都定义成关于theta的因变量。代码相对简洁,函数的定义非常高效。

theta = np.linspace(0, 2*np.pi) #自变量theta取值范围[0,2pi)
x = np.cos(theta - np.pi/2) #定义因变量
y = np.sin(theta - np.pi/2) #定义因变量
z = theta  #定义因变量

最后定义了要输出3D图,指明3D图类型为垂线标记图。

 

fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) #定义画3D图
ax.stem(x, y, z) #指明3D图类型为垂线标记图

plt.show() #输出图形

输出后的图形为:

图1 

由图1可见,3D垂线标记图自XOY平面画出了垂直Z轴的垂线,且在Z值的位置坐了圆形标记。 

【3】代码修改

【3.1】垂线加密

将参数theta的取值增多,修改后的代码为;

theta = np.linspace(0, 2*np.pi,100) #之前未曾定义自变量数量,现在将其明确为100个

输出结果为:

图2

由图2可见,随着参数取值的增多,垂线已经实现加密。

 【3.2】垂线类型更新

默认的垂线是实现,尝试将其改为虚线,在ax.stem中增加linefmt=':',改后代码和图形如下:

ax.stem(x, y, z,linefmt=':') 

图3 

图3输出了虚线式的垂线。

【3.3】标记类型更新

默认的标记是一个圆球,尝试将其改为其他类型,在ax.stem中增加markerfmt='g',改后代码和图形如下:

ax.stem(x, y, z,linefmt=':',markerfmt='g') 

图4

图4的顶端不再是圆形,而是绿色的实线。

【3.4】显示坐标轴标签

坐标轴标签是否显示对图像分析有很大影响,在plt.show()前面增加一行代码以输出坐标轴标签,,改后代码和图形如下:

ax.set(xlabel='x', ylabel='y', zlabel='z')
plt.show() #输出图形

图5 

图5已经将XYZ显示在坐标轴旁边。

【3.5】垂线起始位置更新

垂线的起始位置默认是0,现将其更新。在ax.stem()中增加bottom=2.5,改后代码和图形如下:

图6

图6的红色圆圈位于Z=2.5位置处。 

继续修改bottom=100,此时的输出结果为:

图7

由图7可见,如果垂线起始圆圈位置放得过高,或者说与自变量的值相差太大,会削弱图像的表达能力。图7中真正要输出的变量在绿色线上,现在被压缩到很小的一片区域。

红色箭头指示的区域就是自变量的变化范围,这个值和100相比显然较小。

这提示我们以后设置垂线其实圆圈因考虑自变量值的范围。

【4】总结

本文学习了3D垂线标记图的画法,并对垂线密度、类型和起始圆圈、标记类型进行了修改,此外显示了各坐标轴的标签。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2131380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自定义WPF滑块样式-Slider

在Windows应用程序开发中,滑块(Slider)是一个非常常见且有用的控件。它可以让用户通过拖动滑块来选择一个范围内的值。然而,WPF或UWP应用程序中的默认滑块样式可能并不总是符合我们的设计需求。因此,我们需要自定义滑块…

华为OD机试 - 伐木工 - 动态规划(Java 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷D卷A卷B卷C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加…

可以实时引入模块

缺点:循环会有点问题,不能死循环,最好在python脚本中起一个计时器 解释器在执行时时同步的,所以会见界面卡住,使用多个线程可以解决这个问题 或者使用 C的异步 一个完整的IDLE 麻烦,得把pyshell.py 弄能才能从tk 改到qt 内嵌到 dock

三维坐标变换

(一些困惑梳理记录) “坐标转换”的区分 1、坐标系基底变换 2、目标描述向量变换 总的来说, A属于1、坐标系基底变换, B中所述方法,可用于1、坐标系基底变换,也可用于2、目标描述向量变换&#xff0c…

文生视频算法

文生视频 Sora解决问题:解决思路: CogVideoX解决问题:解决思路: Stable Video Diffusion(SVD)解决问题:解决思路: 主流AI视频技术框架: Sora Sora: A Review on Backg…

SpringBoot项目请求返回json空字段过滤

接口返回的json中有的字段可能是为空的,我们不希望他为空的还返回,如下例子: 解决方案:只需要加一个配置类就行: import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.Dese…

【每日刷题】Day120

【每日刷题】Day120 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 413. 等差数列划分 - 力扣(LeetCode) 2. 978. 最长湍流子数组 - 力扣&…

知识图谱增强在 360 文档知识问答及管理中的应用实践

主要内容包括以下几大部分: 360 文档云知识管理/问答应用场景 KG 在文档 RAG 问答中的应用 KG 在文档标准化、层次化、结构化应用 KG 与 LLM 在文档场景下的挑战及展望 问答环节 01 360 文档云知识管理/问答应用场景 首先来介绍一下 360 文档云知识管理问答的…

K1计划100%收购 MariaDB; TDSQL成为腾讯云核心战略产品; Oracle@AWS/Google/Azure发布

重要更新 1. 腾讯全球数字生态大会与9月5日-6日举行,发布“5T”战略,包括TDSQL、TencentOS、TCE(专有云 )、TBDS(大数据)、TI (人工智能开发平台)等 ( [2] ) ; 并正式向原子开源基金…

【无人机设计与控制】基于PID控制的四旋翼无人机系统Matlab仿真

摘要 本文基于PID控制设计了一种四旋翼无人机控制系统,并通过Matlab进行仿真验证。研究了姿态控制和位置控制的性能,仿真结果表明该系统在稳定性和响应速度方面具有良好的表现。本文的主要贡献是验证了PID控制器在多轴飞行器控制中的有效性,…

基于mongodb+flask(Python)+vue的实验室器材管理系统

实验室器材管理系统是一个现代化的、高度集成的软件解决方案,它结合了Flask作为后端框架,MongoDB作为数据库,以及Vue.js作为前端用户界面,专为优化和精简实验室设备及耗材的管理流程而设计。此系统旨在为实验室管理员、研究人员和…

3.C++入门(内联函数,c++11,auto,范围for,nullptr)

⭐本篇文章为C学习的第三篇:主要了解内联函数和部分c11新特性 ⭐本人c代码的Gitee仓库:c学习 橘子真甜/yzc的c学习 - 码云 - 开源中国 (gitee.com) 一. 内联函数 以inline修饰的函数称为内联函数,编译的时候c编译器会在内联函数的地方展开&a…

AI 平台 formulabot 介绍

AI 平台 formulabot 介绍 FormulaBot.com 是一个基于人工智能的数据分析平台,旨在简化数据处理和分析任务 主要功能 数据分析与可视化: Formula Bot 提供工具来分析、可视化和转换数据,使用户能够快速理解数据背后的信息。公式生成: 用户可以通过自然…

别再过度复杂化了,实体SEO其实就是SEO

“实体SEO”。听起来有点可怕,是不是?不仅“实体”这个词听起来有点陌生,还感觉又是要在你永无止境的SEO待办清单上再添加一项。你在SEO方面已经捉襟见肘了,但天啊,又有一个新事物需要你投入稀缺的资源。 不过我有好消…

springboot-创建连接池

操作数据库 代码开发步骤: pom.xml文件配置依赖properties文件配置连接数据库信息(连接池用的是HikariDataSource)数据库连接池开发 configurationproperties和value注解从properties文件中取值bean方法开发 service层代码操作数据库 步骤&am…

component 和slot -----vue3

前言: 辗转几个公司发现基本上有点规模的公司都会有自己的平台,无论是开发平台还是其他什么,都脱离不了一个功能点,那就是组件;无论你是自己从0到1建立的平台还是基于别的已有的平台,都是这样;无非是组件的套娃,只要你梳理清楚平台的主要枝干,熟悉一些前端基本知识,然后掌握组件…

2024年CAD图纸加密软件大盘点:10款高效CAD加密工具大揭秘!

在当今数字化时代,CAD图纸的安全性变得尤为重要。随着设计数据的不断增长,保护这些敏感信息免受未经授权的访问和泄露已成为企业必须面对的挑战。为了应对这一需求,市场上涌现了众多CAD图纸加密软件。本文将为您盘点2024年最值得关注的10款高…

OpenAI 的 o1 大模型在数学和编码方面有了几乎 10 倍的能力提升!

你有没有想过,有一天人工智能可以在数学和编程这两个领域里,真正成为人类的“得力助手”,甚至是超越我们?最近,OpenAI 发布的 o1大模型在这方面取得了几乎 10 倍的能力提升。10 倍!你没有看错。这样的进步让人不禁怀疑:AI 真的能做到“秒懂”数学和编程吗?今天,我们就…

骨传导耳机品牌排行榜前五名,有哪些好用的骨传导耳机品牌值得入手?

我是一名专业的数码产品测评博主,在多年的职业生涯中,发现很多人在使用骨传导耳机后都出现了佩戴不舒服的现象。对此,我希望大家能重视骨传导耳机款式的挑选,因为市面上不专业的产品数量众多,它们纷纷打着保护听力的旗…

【Python爬虫系列】_019.生产者和消费者模型

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python