Python绘制三维图详解

news2024/11/20 11:42:01

利用Python绘制三维图

目标: 绘制图像 z 2 = x 2 + y 2 z^2 = x^2 + y^2 z2=x2+y2

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D #绘制3D图案

画曲面的第一步是就是要创建一个二维平面的网格,在Python当中,我们使用meshgrid()函数,在matlab中也是这个函数哦

创建数据:首先创建x和y,它们的范围都是(-1,1)

x = np.linspace(-1,1,100)
y = np.linspace(-1,1,50)

然后调用numpy中的meshgrid函数,进行网格化操作。

x_,y_ = np.meshgrid(x,y,indexing='ij') 

x_,y_返回网格数组,通过打印x_和y_的形状,可以看到x_,y_都是(100*50) 的二维数组,也就是数组x的长度乘以数组y的长度

print(x_.shape,y_.shape)  
(100, 50) (100, 50)

网格化统一了X,Y的维度,数组运算时,涉及更多数据,范围更广

z_ = x_**2 + y_**2

绘制图形

plt.figure():自定义图像
.add_subplot():添加子图
.plot_surface():绘制曲面
.colorbar():添加颜色棒

fig = plt.figure(figsize=(12,8),facecolor='white') #创建图片
sub = fig.add_subplot(111,projection='3d')# 添加子图,
surf = sub.plot_surface(x_,y_,z_,cmap=plt.cm.brg) #绘制曲面,并设置颜色cmap
cb = fig.colorbar(surf,shrink=0.8,aspect=15) #设置颜色棒


sub.set_xlabel(r"$x$")
sub.set_ylabel(r"$y$")
sub.set_zlabel(r"$z$")
plt.show()

完整代码

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D #绘制3D图案

x = np.linspace(-1,1,100)
y = np.linspace(-1,1,50)
x_,y_ = np.meshgrid(x,y,indexing='ij') 
z_ = x_**2 + y_**2
fig = plt.figure(figsize=(12,8),facecolor='white') #创建图片
sub = fig.add_subplot(111,projection='3d')# 添加子图,
surf = sub.plot_surface(x_,y_,z_,cmap=plt.cm.brg) #绘制曲面,并设置颜色cmap
cb = fig.colorbar(surf,shrink=0.8,aspect=15) #设置颜色棒

sub.set_xlabel(r"$x$")
sub.set_ylabel(r"$y$")
sub.set_zlabel(r"$z$")
plt.show()

请添加图片描述

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

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

相关文章

设备树_基础知识

设备树 格式 /dts-v1/; // 版本号 / { // /表示根节点string-property "xxx"; // string 类型string-list-property "xxx", "yyy"; // strin…

Linux下的Framebuffer编程

文章目录前言一、LCD操作原理二、代码解析及编写程序的步骤0.定义各类参数1.打开LCD设备节点2.获取触摸屏数据3.mmap映射Framebuffer,在Framebuffer中写入数据三、LCD操作函数解析1.描点函数2.显示字符函数总结前言 本篇文章将会介绍Linux下的Framebuffer编程&…

html中的定位知识点如何使用

目录 系列文章目录 文章目录 前言 一、定位是什么?有什么用? 二、定位方式有哪些?怎么使用? 1、静态定位:就是默认的定位方式,意思就是没有定位; 2、相对定位: 3、绝对定位&…

PDF怎么转成Word?安利几个转换小技巧

平时我们工作学习的时候,经常要跟文件打交道,并且接触最多的文件形式就是PDF与Word两种文件格式,它们各有各的好处,PDF的保密性以及兼容性好,便于我们进行文件分享查阅,而Word就方便我们进行编辑。如果我们…

Ubuntu Server 22.04.1配置(配置root账号、设置固定IP、更改SSH端口、配置UFW、VM扩展磁盘后Ubuntu的扩容)

为了能快速的创建虚拟机,通过VM创建了一个2核CPU、4G内存、40G硬盘,安装Ubuntu Server 22.04.1的虚拟机,以便在需要的时候随时克隆一个新的虚拟机出来。 在新的虚拟机克隆出来后可能会调整硬件的配置,例如将40G硬盘扩展到50G&…

Python编程 字典创建

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.字典 1.字典介绍 (了解) 2.字典创建&#xff0…

艾美捷nickases内切酶活性检测及相关研究

艾美捷nickases内切酶组分: NLS-Cas9(D10A) Nickase(0.1 μg/μl) 500 μL 10Reaction Buffer 1 ml 艾美捷nickases内切酶切割活性检测: NLS-Cas9(D10A) Nickase(0.1 μg/μl) 500 μL 10Reaction Buffer 1 ml 经多次柱纯化,SDS-PAGE 胶检…

70. 爬楼梯(动态规划解法)

题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&a…

【异常】com.alicp.jetcache.CacheException: refresh error

jetcache refresh error一、背景描述二、报错内容三、报错原因四、解决方案4.1 解决方案一,使用一级缓存4.2 解决方案二,开启写入权限一、背景描述 技术栈:Spring Boot(2.1.5.RELEASE) Spring Cloud Oopenfeign(2.1.1.RELEASE) jetCache(2.…

基于nodejs电商购物系统的设计与实现(论文+源码+ppt文档+视频录制)

资料下载地址:请点击》》》》 1 前言 2 1.1课题背景 2 1.2课题内容 3 2 需求分析 4 2.1 功能需求 4 2.2 性能需求 5 系统安全性 5 系统数据完整性 5 2.3 数据需求 6 2.4 运行环境需求 6 客户端配置 6 服务器配置 6 2.5 nodejs框架分析 6 3 系统设计 7 3.1 系统设计…

软件项目管理期中准备(自用,仅供参考)

考前拿到了样卷(#^.^#) 直接面向样卷备考 软件项目管理期中准备(自用,仅供参考)选择题计算题1.进度管理-关键路径法,时间压缩法2.进度管理-任务历时估计3.成本管理-COCOMO估算法4.项目的执行与控制-挣值分析法5.成本管理-专家估算…

数据库-----JDBC技术

JDBC概述 数据的持久化 持久化(persistence):将内存中的数据保存到可永久保存的存储 设备中(如磁盘)。 持久化的主要应用是将内存中的数据存储在关系型数据库中,当 然也可以存储在磁盘文件、XML数据文件中。 什么是 JDBC 1、JDBC…

DIN EN ISO 4589-2塑料 用氧指数法测定燃烧行为 第2 部分:室温试验

ISO 4589-2 塑料-用氧指数法测定燃烧行为-第2部分:室温测试-标准名称: ISO 4589-2 塑料-用氧指数法测定燃烧行为-第2部分:室温测试 ISO 4589-2 Plastics-Determination of burning behaviour by oxygen index –Part 2: Ambient-temperature test ISO 4…

推荐10个不错的React开源项目

1,Kutt.it Kutt是一个现代的URL缩短器,支持自定义域,可以用来缩短网址、管理链接并查看点击率统计信息。Kutt支持自定义域名,设置链接密码和描述,缩短URL的私人统计信息,查看、编辑、删除和管理链接&#…

LPWA物联网通信

物联网LPWA是物联网中的无线通信技术之一。 根据物联网无线通信技术的覆盖距离,大致可分为两类:一类是短距离通信技术,包括蓝牙(蓝牙);NFC,Zigbee、WIFI、NFC,主要用于室内智能家庭、消费电子等场景;另一种…

C++异常

21 C异常 21.1 什么时候会发生异常 1.打开一个不存在的文件 2.请求存储空间失败 3.数组越界等等 21.2 使用abort()函数 1.包含在cstdlib头文件中,包含在std命名空间中 2.当调用abort()函数时,会引发异常并中断程序(Visual Studio 2019);…

【PlasticSCM Could Edition】新版本云托管浅试 (与踩一些坑)

【PlasticSCM Could Edition】新版本云托管浅试前言尝试对比前言 UnityHub 3.3.0-c7 中,下载了一个 2021LST 的版本,毕竟为了做毕设,用 2020LST 的感觉老了点… 然后新建了一个项目,勾选使用 版本控制 ,但是报错 那先…

【附源码】计算机毕业设计JAVA药品管理系统

【附源码】计算机毕业设计JAVA药品管理系统 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

STM32CubeMX学习笔记(48)——USB接口使用(MSC基于外部Flash模拟U盘)

一、USB简介 USB(Universal Serial BUS)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、…

HTTP —— HTTP 响应详解, 构造 HTTP 请求

JavaEE传送门JavaEE 【前端】JavaScript —— WebAPI HTTP —— HTTP 协议中的细节(超详细!!) 目录HTTP 响应详解认识 "状态码"状态码小结认识响应 "报头" headerContent-Type认识响应 "正文" body构造 HTTP 请求form 表单ajaxpostmanHTTP 响应…