当前位置: 首页 > article >正文

python画图|3D surface基础教程

画三维图在当前的需求越来越强烈,因此掌握3D图的画法至关重要。

让我们先来学习3D surface基础教程。

【1】官网教程

首先是来到官网,找到教程,详见下述链接:

3D surface (colormap) — Matplotlib 3.9.2 documentation

教程页面给出了漂亮的3D surface图形,具体代码解释如下。

【2】代码解读

首先是引入numpyh和matplotlib:

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

from matplotlib import cm #cm即是colormap,引入该模块支持渐变颜色绘制
from matplotlib.ticker import LinearLocator #引入线性化画图模块

然后定义了变量:

fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) #定义画图

# Make data.
X = np.arange(-5, 5, 0.25) #定义X范围
Y = np.arange(-5, 5, 0.25) #定义Y范围
X, Y = np.meshgrid(X, Y) #输出组合组矩阵
R = np.sqrt(X**2 + Y**2) #定义R变量
Z = np.sin(R) #定义Z变量

之后定义了要画surface图:

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False) #定义画surface图

剩下的部分先定义了坐标轴:

ax.set_zlim(-1.01, 1.01) #限定Z轴
ax.zaxis.set_major_locator(LinearLocator(10)) #限定线性化位置
# A StrMethodFormatter is used automatically
ax.zaxis.set_major_formatter('{x:.02f}') #设置坐标格式

最后定义了图形颜色和要求输出图形:

fig.colorbar(surf, shrink=0.5, aspect=5) #定义图形渐变

plt.show()

图1

【2】代码修改

尝试修改LinearLocator(30)为30,改后:

ax.zaxis.set_major_locator(LinearLocator(30)) #限定线性化位置
输出结果为:

图2

图形层数变得密集。

【3】总结

学习了3Dsurface的基础画法。

 


http://www.kler.cn/news/304205.html

相关文章:

  • GO Server-Sent Events (SSE)
  • Linux 基础命令-系统信息查看
  • 可测试,可维护,可移植:上位机软件分层设计的重要性
  • 【Python机器学习】循环神经网络(RNN)——审察模型内部情况
  • 警惕!尿血背后隐藏的健康危机,你不可不知的五大原因!
  • PHP 线程,进程、并发、并行 的理解
  • 大模型从失败中学习 —— 微调大模型以提升Agent性能
  • 华为云服务器的数据库部署及管理
  • Jwt、Filter、Interceptor
  • Python实现牛顿法 目录
  • JDK命令工具
  • 中学 教资 科目二
  • IOS Siri和快捷指令打开app
  • golang学习笔记14——golang性能问题的处理方法
  • 2-94 基于matlab的最佳维纳滤波器的盲解卷积算法
  • 基于微信小程序的食堂点餐预约管理系统
  • IP纯净度对跨境电商有哪些影响
  • terminator-gnome
  • 在Linux系统中如何创建一个新用户
  • STM32+ESP01连接到机智云
  • 移动应用门户实现的技术方案
  • [数据集][目标检测]岩石种类检测数据集VOC+YOLO格式4766张9类别
  • 【贪心算法】贪心算法
  • Mongodb Error: queryTxt ETIMEOUT xxxx.wwwdz.mongodb.net
  • 【运维】自动化运维工具,使用 Ansible 进行开发环境配置管理(本地/远程,brew/scoop/yum,docker/packer/openstack)
  • 【Hot100】LeetCode—75. 颜色分类
  • 算法基础-扩展欧几里得算法
  • Python知识点:如何使用Python进行Excel文件操作(OpenPyXL、Pandas)
  • 源码到class字节码的编译流程 字节码到内存的Java类加载流程
  • 【一分钟学C++】std::memory_order