Matplotlib---3D图

1. 3D图

# 3D引擎
from mpl_toolkits.mplot3d.axes3d import Axes3D 
fig = plt.figure(figsize=(8, 5))  x = np.linspace(0, 100, 400)
y = np.sin(x)
z = np.cos(x)# 三维折线图
axes = Axes3D(fig, auto_add_to_figure=False) 
fig.add_axes(axes)
axes.plot(x,y,z) 
plt.savefig('images/6-1.png')

 np.linspace()函数是NumPy库中的一个函数,用于生成等间隔的数值序列。

使用格式:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数说明:

- start:序列的起始值。

- stop:序列的结束值。

- num:要生成的等间隔样本数量,默认为50。

- endpoint:布尔值,控制是否包含stop值,默认为True,即包含。

- retstep:布尔值,控制是否返回样本之间的步长值,默认为False,即不返回。

- dtype:返回数组的数据类型,默认为None,即与输入参数的数据类型一致。

`axes = Axes3D(fig, auto_add_to_figure=False)`是一种创建`Axes3D`对象的方式,其中`fig`是

一个已经创建好的`Figure`对象。

参数说明:

- `fig`: 一个已经创建好的`Figure`对象,用于在该图形上创建`Axes3D`对象。

- `auto_add_to_figure`: 可选参数,默认为`True`。当设置为`True`时,创建的`Axes3D`对象会自动

添加到`fig`中。当设置为`False`时,需要手动将该对象添加到`fig`中。

使用这种方式创建`Axes3D`对象可以灵活地控制对象的添加和布局。如果`auto_add_to_figure`参

数设为`True`,那么创建对象后它将自动添加到`fig`中,而不需要额外的步骤。如果设为`False`,

则需要手动将对象添加到`fig`中。

例如:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 创建一个空的Figure对象
fig = plt.figure()# 不自动将创建的Axes3D对象添加到Figure中
axes = Axes3D(fig, auto_add_to_figure=False)# 将创建的Axes3D对象手动添加到Figure中
fig.add_axes(axes)

在这个例子中,通过将`auto_add_to_figure`参数设置为`False`来创建了一个空的`Axes3D`对

象`axes`,然后通过`fig.add_axes()`方法手动将其添加到`fig`中。这样就可以更灵活地控制

`Axes3D`对象的创建和添加。

在Matplotlib库中,`Axes3D`函数用于创建一个三维坐标系。

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

- `fig = plt.figure()`:创建一个新的图像窗口。

- `ax = fig.add_subplot(111, projection='3d')`:在图像窗口中添加一个子图,并将其设置为三维坐

标系。

参数说明:

- `projection='3d'`:指定子图的投影方式为三维('3d')。这个参数告诉Matplotlib将图像显示为三维

形式。

一旦你创建了一个`Axes3D`对象,你就可以使用它的方法和属性来绘制和自定义三维图形。

常用的方法和属性包括(但不限于):

- `scatter(x, y, z, ...)`: 绘制三维散点图。
    - `x`、`y`、`z`:表示数据点的x、y、z坐标值。
    - `...`:其他用于自定义样式的参数,例如点的大小、颜色等。

- `plot(x, y, z, ...)`: 绘制三维线图。
    - `x`、`y`、`z`:表示数据点的x、y、z坐标值。
    - `...`:其他用于自定义样式的参数,例如线的类型、颜色等。

- `plot_surface(X, Y, Z, ...)`: 绘制三维曲面图。
    - `X`、`Y`、`Z`:表示网格点的x、y、z坐标值。
    - `...`:其他用于自定义样式的参数,例如曲面的颜色、透明度等。

- `set_xlabel(label)`, `set_ylabel(label)`, `set_zlabel(label)`: 设置x、y、z坐标轴的标签。
    - `label`:坐标轴的标签文本。

- `set_title(title)`: 设置子图的标题。
    - `title`:子图的标题文本。

- `set_xlim(left, right)`, `set_ylim(bottom, top)`, `set_zlim(bottom, top)`: 设置x、y、z坐标轴的取值范围(最小值和最大值)。
    - `left`, `right`, `bottom`, `top`:坐标轴的取值范围。

- `view_init(elev, azim)`: 设置观察视角的高度角和方位角。
    - `elev`:观察视角的高度角(垂直旋转角度),单位为度。
    - `azim`:观察视角的方位角(水平旋转角度),单位为度。

fig = plt.figure(figsize=(8, 5))  # 三维折线图
axes = Axes3D(fig, auto_add_to_figure=False) 
fig.add_axes(axes)# 三维散点图
x = np.random.rand(50)  
y = np.random.rand(50)  
z = np.random.rand(50) 
axes.scatter(x, y, z,color='red',s=100)
plt.savefig('images/6-2.png')

fig = plt.figure(figsize=(8, 5))# 二维变成了三维
axes = Axes3D(fig, auto_add_to_figure=False) 
fig.add_axes(axes)x = np.arange(1, 5)for m in x:axes.bar(np.arange(4),np.random.randint(10, 100, size=4),zs=m,  # 在x轴中的第几个zdir='x',  # 在哪个方向上排列alpha=0.7,  # 透明度width=0.5  # 宽度)axes.set_xlabel('X轴', fontsize=18, color='red')
axes.set_ylabel('Y轴', fontsize=18, color='blue')
axes.set_zlabel('Z轴', fontsize=18, color='green')
plt.savefig('images/6-3.png')
plt.show()

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在vite创建的vue3项目中使用Cesium加载czml路径信息和无人机模型

在vite创建的vue3项目中使用Cesium加载czml路径信息和无人机模型 用到的区域文件、地图标记文件、路径信息文件、模型文件 提取码:99jq 使用vite创建vue3项目 npm create vitelatestcd到创建的项目文件夹中 npm install安装Cesium npm i cesium vite-plugin-cesium…

AI智能语音机器人的功能和作用都有哪些?

智能语音机器人是一种能够使用自然语言处理技术和人工智能算法,通过声音与用户进行交互的机器人。它可以回答用户提出的问题、处理用户的投诉、提供产品或服务的相关信息等等。 实现一个智能语音机器人需要涉及多个技术领域,包括自然语言处理、语音识别…

CSS 沿着同一个方向旋转

主要解决旋转360后倒转的问题&#xff0c;沿着一个方向旋转&#xff0c;而不是倒回去重新开始。 效果 源码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>同方向旋转</title><script src"https://dp.rc1…

[QT编程系列-3]:C++图形用户界面编程,QT框架快速入门培训 - 2- QT程序的运行框架:HelloWorld、常见控件、对象树原理

目录 2. QT程序的运行框架 2.1 Hello World程序框架 2.2 QT Designer初识 2.3 用QT Designer设计用户登录界 2. QT程序的运行框架 2.1 Hello World程序框架 上述示例代码中&#xff0c;首先根据应用程序的需求使用 QCoreApplication 或 QApplication 定义 app 对象。如果你…

前端框架Layui的使用讲解(Layui搭建登录注册页面)

目录 一、前言 1.什么是Layui 2.Layui的背景 3.为什么要使用Layui 4.Layui的模块化 二、Layui使用讲解 1.初识Layui 2.搭建登录页面 静态效果图​ 封装引入文件页面&#xff08;公用页面&#xff09; jsp页面搭建 userDao编写 Servlet页面编写 xml文件配置 3.搭…

BM68-矩阵的最小路径和

题目 给定一个 n * m 的矩阵 a&#xff0c;从左上角开始每次只能向右或者向下走&#xff0c;最后到达右下角的位置&#xff0c;路径上所有的数字累加起来就是路径和&#xff0c;输出所有的路径中最小的路径和。 数据范围: 1≤n,m≤500&#xff0c;矩阵中任意值都满足 0≤ai,j…

GEE:多元线性回归

作者:CSDN @ _养乐多_ 本文记录了在NDVI、EVI和LAI作为自变量,precipitation作为因变量的条件下,使用linearRegression函数进行线性回归分析的代码,代码在Google Earth Engine(GEE)平台上实现。具体而言,该函数可以计算NDVI、EVI和LAI对precipitation的影响关系。通过线…

IDEA+springboot+ssm+layui+mysql高校宿舍管理系统源码

IDEAspringbootssmlayuimysql高校宿舍管理系统源码 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.宿舍列表3.预分配宿舍4.宿舍分配信息5. 留校管理6. 报修管理7. 留言管理8.卫生管理9.我的宿舍10.我的报修11.卫生检查记录12.离校登记13.留校申请14.返校登记15.留言板16.…

Spring Boot单元测试

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 Spring Boot 中进行单元测试是一个常见的做法&#xff0c;可以帮助你验证…

Python(一):为什么我们要学习Python?

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

ChatGLM 实践赛之学术工具创意开发丨智谱 AI × 和鲸科技

2022 年底以来&#xff0c;LLM 大规模语言模型备受瞩目。今年 3 月中旬&#xff0c;智谱 AI 与清华大学强强联合&#xff0c;重磅发布了 ChatGLM-6B 开源模型。截止 6 月 24 日&#xff0c;该模型的下载量超过三百万人次&#xff0c;并在 Hugging Face&#xff08;HF&#xff0…

003.PADS VX2.4选项设置及显示颜色设置

文章目录 一、PADS颜色设置及选项设置二、选项设置1.全局2.设计3.栅格和捕获4.显示5.布线选项页6.覆铜平面选项页7.文本和线选项页8.文本和线选项页9.过孔样式选项页 一、PADS颜色设置及选项设置 一、颜色设置 1&#xff0e;点击设置—显示颜色&#xff09;&#xff08;快捷键…