Matplotlib---3D图

news2024/11/17 5:50:10

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.coloradmin.cn/o/707462.html

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

相关文章

arduino uno r3 机械臂

1、硬件 arduino uno r3 改进板、sg90舵机(180度 x 4)、JoyStick Shield PS2游戏摇杆扩展板(或者按键 遥杆模块)、3D打印件、M3螺丝螺母(10mm 15mm 25mm )以及M2螺丝螺母。 2、接线 开发版使用DC口7V-12V 供…

AI 绘画风格迁移之青铜模型训练

前情提要 2023-07-01 周六 杭州 阴 小记: mmp,上周吃烤面筋,不小心牙签扎到口腔,结果这几天吃什么都不舒服,可是计划还是要做的,下半年要把当下 AI 的应用梳理下,自己还是喜欢那种先使用再学习相关原理&a…

C语言之数组初阶(1-4)

目录 1. 一维数组的创建和初始化 2. 一维数组的使用 3. 一维数组在内存中的存储 4. 二维数组的创建和初始化 5. 二维数组的使用 6. 二维数组在内存中的存储 7. 数组越界 8. 数组作为函数参数 数组概念:数组是一组相同类型元素的集合 1.一维数组的创建和初始化 在C语言中…

【已解决】nacos新增配置报错: 发布失败。请检查参数是否正确

解决方法: sql文件直接采取容器默认自带的创建表,复制出来即可 非容器自带sql,有多余encrypted_data_key字段 1.删掉config_info 和 his_config_info 表中的encrypted_data_key字段 2.config_info 和 his_config_info 表中非空encrypted_data…

Android12之ServiceManager::addService注册服务的本质(一百五十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

如何用smardaten90天快速开发并上线智慧空间loT物联平台?

前言 大家好,我是小白白,前段时间一位好友接手了一个“烫手山芋”开发任务,77万㎡的科技园区需要打造智慧空间物联平台。要求接入600园区设备,处理15000日数据量,在打造整体IOT物联底座之上,构建起整个园区…

三电阻采样的劣势分析

最近控制过程中,被下三桥采样小坑了一下。 如下图所示为下桥臂三电阻采样方式,该方法的采样器件是高精度电阻,电阻两端电压经过采样调理电路输出至单片机ADC,三电阻采样成本低、结构简单,并且采样信号和输出强电之间是…

【Unity3D】素描特效

1 非真实渲染 法线贴图和凹凸映射中讲述了普通光照的渲染原理,实现的效果比较贴近真实世界(照相写实主义,Photorealism),非真实渲染(Non-Photorealism Rendering,NPR)在照相写实主义…

7-数组创建函数还有哪些?【视频版】

目录 问题视频解答 问题 视频解答 点击观看: 7-数组创建函数还有哪些?

基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库

云服务器系统环境: 华为云 Ubuntu 9.3.0-17ubuntu1~20.04 1.ECS准备docker相关环境 1.1ECS安装docker 一行一行执行 都是从官网找的命令 sudo -i apt update apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL htt…

Linux学习之screen和系统日志

screen yum install -y screen安装screen。 输入screen就可以进入screen环境。 在screen环境中执行tail -f /var/log/messages。 可以先按Ctrla,这时没有反应,需要紧接着迅速按d才能退出screen环境。 使用screen -r 11326还可以进入到刚刚挂起的s…

【Rust】基本语法

文章目录 变量与可变性变量与常量Shadowing(隐藏)数据类型标量类型1.整数类型2.浮点类型3.布尔类型4.字符类型 复合类型1.Tuple2.数组 函数if表达式循环1.loop2.while3.for 变量与可变性 声明变量使用let关键字,默认情况下,变量是…

Android 开发环境搭建

系列文章 MySQL安装教程(详细) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/126037520 MySQL卸载教程(详细) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129279265 …

【C++】类型转换和IO流

C完结 文章目录 前言一、C的四种类型转换二、IO流总结 前言 首先我们看看C语言中的类型转换: 在 C 语言中,如果 赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与 接收返回值类型不一致时,就需…

tmux-解决ssh长时间不操作便会话结束的问题

Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具。 如果电脑死机会话中断的话会导致服务器上基于bash的所有进程都被强制关闭。tmux确实是解决这个问题的好办法,而且很容易上手&#xff0c…

帝国CMS自动刷新首页和自定义列表页:实现网站内容的自动更新

本文将介绍一种实现帝国CMS自动刷新首页和自定义列表页的方法。 以下是具体的实现步骤: 1、设置自定义key 添加网站 设置发布网站 发布成功 首先,在您的帝国CMS根目录下创建一个名为"htmlindex"的文件夹(您可以自行命名&#xff…

基于网格式搜索SVM方法的电力负荷预测

来源公众号:320科技工作室 随着生活质量的提高,人们对电的需求不断上升,电力系统的发展变得尤为重要。准确的电力负荷预测能够使电力部门降低发电成本,合理安排设备维护以及节省能源,并为电力规划以及制定合理发电量提供相关依据…

PACS医学影像系统(完整版)

一、PACS影像存取与传输系统以实现医学影像数字化存储、诊断为核心任务,从医学影像设备(如CT、CR、DR、MR、DSA、RF等)获取影像,集中存储、综合管理医学影像及病人相关信息,建立数字化工作流程。 二、系统可实现检查预…

【Echarts系列】— echarts饼图、圆环图配置代码图文详解

前言 简介:本文将从头开始,带你快速上手 echarts最常用图例—饼图 准备:请自行先将echarts图例引入你的项目,本文不多介绍。(引入 echarts教程:http://t.csdn.cn/mkTa4) 心得:echar…

LangChain 基于 ChatGPT 整合 Google 搜索 强化问答应用

一、LangChain Agents LangChain 中的 Agents 是什么呢,对于官方的描述是:某些应用程序不仅需要预先确定的对 LLM/其他工具的调用链,还可能需要依赖于用户输入的未知链。在这些类型的链中,有一个 Agents 可以访问一套工具。根据用…