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

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的基础画法。

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【诉讼流程-健身房-违约-私教课-多次沟通无效-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(1)】
  • tensor 的运算(加法、点乘、矩阵乘法)
  • node.js框架StrongLoop快速入门实战
  • Python编码系列—Python建造者模式:构建复杂对象的优雅之道
  • C++学习笔记(22)
  • llvm后端之函数栈帧
  • Mastering openFrameworks_第五章_使用视频
  • 健身管理|基于java的健身管理系统小程序(源码+数据库+文档)
  • 清理.svn文件夹执行命令bat
  • -isystem isystem 实验记录
  • 【数据结构与算法 | 灵神题单 | 前后指针(链表)篇】力扣19, 61,1721
  • 赛氪技术支持中医药知识大赛,亮相中国国际服务贸易交易会
  • 1997-2022年各省农用化肥折纯量数据(无缺失)
  • 【Kubernetes】常见面试题汇总(十五)
  • 数据库系统概论(3,4)
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • C++11: atomic 头文件
  • CSS实用技巧
  • Django 博客开发教程 8 - 博客文章详情页
  • EOS是什么
  • iOS 系统授权开发
  • jquery ajax学习笔记
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Netty源码解析1-Buffer
  • tab.js分享及浏览器兼容性问题汇总
  • vue-loader 源码解析系列之 selector
  • webpack项目中使用grunt监听文件变动自动打包编译
  • windows下如何用phpstorm同步测试服务器
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 程序员最讨厌的9句话,你可有补充?
  • 大快搜索数据爬虫技术实例安装教学篇
  • 跳前端坑前,先看看这个!!
  • 我感觉这是史上最牛的防sql注入方法类
  • 优秀架构师必须掌握的架构思维
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​马来语翻译中文去哪比较好?
  • #数学建模# 线性规划问题的Matlab求解
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (BFS)hdoj2377-Bus Pass
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (ZT)一个美国文科博士的YardLife
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .Net 8.0 新的变化
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net web项目 调用webService
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET使用存储过程实现对数据库的增删改查
  • .net网站发布-允许更新此预编译站点
  • @Transient注解