python画图|在三维空间的不同平面上分别绘制不同类型二维图
【1】引言
前序已经完成了基础的二维图和三维图绘制教程探索,可直达的链接包括但不限于:
python画图|3D参数化图形输出-CSDN博客
python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客
在学习过程中,发现一个案例: 在三维空间的不同平面上分别绘制不同类型二维图。
经过一段时间的学习,我对此有一些理解,现在分享出来和大家一起探讨。
【2】官网教程
打开下述链接可直达官网,官网的图形比较美丽,我对代码也进行了解读。
Plot 2D data on 3D plot — Matplotlib 3.9.2 documentation
【3】代码解读
首先是引入画图模块和计算模块:
import matplotlib.pyplot as plt #定义画图模块 import numpy as np #定义计算模块
然后非常丝滑地定义了要画三维图:
ax = plt.figure().add_subplot(projection='3d') #定义要画三维图
之后对xoy平面的图形进行了定义:
x = np.linspace(0, 1, 100) #定义自变量 y = np.sin(x * 2 * np.pi) / 2 + 0.5 #定义因变量 ax.plot(x, y, zs=0, zdir='z', label='curve in (x, y)') #在xoy平面画图
然后定义了一个新的数组:
colors = ('r', 'g', 'b', 'k') #设置colors数组
定义随机数种子:
np.random.seed(19680801) #定义随机数组种子
定义三个矩阵:
x = np.random.sample(20 * len(colors)) #定义新矩阵x,以colors数组的长度为基础,生成20倍长度数量的随机数据 y = np.random.sample(20 * len(colors)) #定义新矩阵y,以colors数组的长度为基础,生成20倍长度数量的随机数据 c_list = [] #定义空矩阵
自定义一个函数,对c_list[ ]矩阵进行填充:
for c in colors: #自定义函数c_list.extend([c] * 20) #对colors中的数据,乘以20后叠加到c_list
在XOZ平面绘制散点图:
ax.scatter(x, y, zs=0, zdir='y', c=c_list, label='points in (x, z)') #在xoz平面画图
有上式可以看出,c_list代表的是变化的颜色, 所以上面的自定义函数是调整散点图的颜色。
之后设置坐标轴的基本属性:
ax.legend() #输出图例
ax.set_xlim(0, 1) #设置X轴范围(0, 1)
ax.set_ylim(0, 1) #设置Y轴范围(0, 1)
ax.set_zlim(0, 1) #设置Z轴范围(0, 1)
ax.set_xlabel('X') #设置X轴标签为‘X’
ax.set_ylabel('Y') #设置Y轴标签为‘Y’
ax.set_zlabel('Z') #设置Z轴标签为‘Z’
最后输出图形:
ax.view_init(elev=20., azim=-35, roll=0) #视角角度转换plt.show() #输出图形
这里的 ax.view_init()函数是对三维图的观察角度进行调整,我们接下来会进行探索。
获得的输出图形为:

图1
【4】代码改写
【4.1】尝试修改颜色矩阵:
colors = ('r', 'g', 'b', 'k','y') #设置colors数组
之前的自定义代码是100个取值,但colors数组中只有四个元素,及时乘以20也只有80个元素,但一共有100个输出值,为使颜色均匀分布,增加一个黄色的代码‘y’。代码简写链接可以参考下述链接:
https://matplotlib.org/stable/users/explain/colors/colors.html#colors-def
此时的输出图形为:

图2
【4.2】修改ax.view_init()函数
在上述基础上,修改ax.view_init()函数,将其改为:
ax.view_init(elev=90., azim=0, roll=0) #视角角度转换
ax.set_title('elev=90., azim=0, roll=0')
增加了一行 ax.set_title('elev=90., azim=0, roll=0')用以记录。

图3
可见elev=90是指从Z轴垂直看XOY平面。
然后继续修改:
ax.view_init(elev=90., azim=90, roll=0) #视角角度转换
ax.set_title('elev=90., azim=90, roll=0')
输出结果为:

图4
可见elev=90,azim=90是指在从Z轴垂直看XOY平面的基础上,对XOY平面继续顺时针旋转90度。
然后继续修改:
ax.view_init(elev=90., azim=90, roll=90) #视角角度转换
ax.set_title('elev=90., azim=90, roll=90')
输出结果为:

图5
可见elev=90,azim=90, roll=90是指在从Z轴垂直看XOY平面,对XOY平面顺时针旋转90度的基础上,再对整个图顺时针旋转90度。
未验证上述结论,继续修改:
ax.view_init(elev=90., azim=60, roll=90) #视角角度转换
ax.set_title('elev=90., azim=60, roll=90')
输出图形为:

图6
可以看出:elev=90,azim=60, roll=90是指在从Z轴垂直看XOY平面,对XOY平面顺时针旋转960度的基础上,再对整个图顺时针旋转90度。
【5】结论
探索了在三维空间的不同平面上分别绘制不同类型二维图的教程。
相关文章:
python画图|在三维空间的不同平面上分别绘制不同类型二维图
【1】引言 前序已经完成了基础的二维图和三维图绘制教程探索,可直达的链接包括但不限于: python画图|3D参数化图形输出-CSDN博客 python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客 在学习过程中,发现一个案例࿱…...
与ai一起作诗(《校园清廉韵》)
与ai对话犹如拷问自己的灵魂,与其说ai助力还不如说在和自己对话。 (笔记模板由python脚本于2024年10月19日 19:18:33创建,本篇笔记适合喜欢python和诗歌的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free&…...
python matplotlib
一、图形函数 函数名称描述Bar绘制条形图Barh绘制水平条形图Boxplot绘制箱型图Hist绘制直方图his2d绘制2D直方图Pie绘制饼状图Plot在坐标轴上画线或者标记Polar绘制极坐标图Scatter绘制x与y的散点图Stackplot绘制堆叠图Stem用来绘制二维离散数据绘制(又称为火柴图&…...
秋招面试题记录_半结构化面试
c八股(可能问的多一点) 1.简单说说C11语法特性 答: 1.auto以及decltype自动类型推导,避免手动声明复杂类型,减少冗长代码提升了可读性和安全性。 2.智能指针 自动释放内存 (具体说说) 有shared和unique 差异主要体现在所有权、内存开销、…...
Java项目-基于springboot框架的疫苗接种管理系统项目实战(附源码+文档)
作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…...
Android 12.0进程保活白名单功能实现
在Android 12.0系统中,实现进程保活白名单功能是为了确保某些重要的应用程序即使进入后台也能长时间保持运行状态,不被系统自动杀死。这一功能的实现涉及多个核心类和文件,以下是具体的实现步骤和核心功能分析: 一、实现步骤 …...
vscode 功能、设置备忘
2024年10月18日 crtl p 按文件名搜索,输入> 开始搜索命令 设置文件显示过滤和搜索过滤: ctrlp 输入 >settings 选择Preferences:Open Settings(UI),搜索exclude 配置 Files Exclude 修改显示过滤 配置 Search Exclude 修…...
错误 Failed to connect to xx.xx.xx.xx port xx: No route to host
Failed to connect to xx.xx.xx.xx port xx: No route to host 系统环境: Oracle Cloud(OCI)Ubuntu20.4 问题: 连接本机IP正常访问,连接内网ip可正常访问,但连接外网IP报错:Failed to conne…...
Redis环境的搭建
Redis环境的搭建可以分为Linux系统和Windows系统两种情况。 一、Linux系统下Redis的搭建 1. 安装前准备 确保Linux系统已安装GCC环境,可以使用yum install gcc-c命令安装。下载Redis安装包,例如redis-6.2.6.tar.gz,并将其上传到Linux服务器…...
Git Push(TODO)
最近经常碰到GIT push不上去的问题。到处求人解决也真是尴尬,想自己看看,所以刚刚在github上建了一个仓,试了下。结果如下: 暂时可能还不行,因为数据都是加密的,没法看到具体GIT的交互信息。。。 后面再想办…...
Java工具类--截至2024常用http工具类分享
1. Apache HttpClient Apache HttpClient是一个功能强大的、灵活的HTTP客户端,用于发送请求和接收响应。它支持HTTP/1.1和HTTP/2协议,并且提供了丰富的配置选项。适用于需要高度可配置性和扩展性的场景。 2.OkHttp OkHttp是一个高效的HTTP客户端&…...
C#学习笔记(五)
C#学习笔记(五) 第 三 章 基本语句以及语法一、控制台的基本语句使用1. 方法重载2. 输入输出3.字符串格式化 二、赋值运算符、算数运算符、比较运算符三、数据类型转换常用方法使用、比较和选择1. 自动类型转换(隐式转换)2. 强制类型转换2.1 数值类型之间…...
视频云存储/音视频流媒体视频平台EasyCVR视频汇聚平台在欧拉系统中启动失败是什么原因?
视频监控/视频集中存储/磁盘阵列EasyCVR视频汇聚平台具备强大的拓展性和灵活性,支持多种视频流的外部分发,如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、fmp4等,这为其在各种复杂环境下的部署提供了便利。 安防监控EasyCVR视频汇聚平…...
spring源码中的,函数式接口,注解@FunctionalInterface
调用方 /org/springframework/beans/factory/support/AbstractBeanFactory.java:333sharedInstance getSingleton(beanName, () -> {try {return createBean(beanName, mbd, args);}catch (BeansException ex) {// Explicitly remove instance from singleton cache: It mi…...
分布式系统中的Session共享:实现跨服务器的用户登录信息同步
引言 在现代Web应用中,分布式架构已经成为主流。随着业务规模的扩大,单台服务器往往难以承载所有的请求,因此需要多台服务器协同工作来提供服务。然而,在这种分布式环境中,如何确保用户的登录状态能够在不同的服务器之…...
【LeetCode每日一题】——1588.所有奇数长度子数组的和
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 前缀和 二【题目难度】 简单 三【题目编号】 1588.所有奇数长度子数组的和 …...
自定义多级联动选择器指南(uni-app)
多端支持:可以运行在H5、APP、微信小程序还是支付宝小程序,都可以轻松使用改组件。自定义配置:您可以根据需要配置选择器的级数,使其适应不同的数据结构和用例。无限级联:此组件支持无限级联选择,使您能够创…...
RHCE笔记-SSH服务
一.对称加密与非对称加密 1.1对称加密 1. 原理 对称加密是指加密和解密使用相同的密钥。也就是说,发送方和接收方在通信之前需要共享一个秘密密钥,使用这个密钥对数据进行加密和解密。 2. 常见算法 AES (Advanced Encryption Standard):…...
java实现文件分片上传并且断点续传
文章目录 什么是断点续传后端实现JAVA实现大文件分片上传断点续传 什么是断点续传 用户上传大文件,网络差点的需要历时数小时,万一线路中断,不具备断点续传的服务器就只能从头重传,而断点续传就是,允许用户从上传断线的地方继续传…...
leetcode hot100 之【LeetCode 15. 三数之和】 java实现
LeetCode 15. 三数之和 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c 使得 a b c 0?请你找出所有和为 0 且不重复的三元组。 注意: 答案中的三元组可以按任意顺序组织。在 n…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
