matplotlib 三维图表绘制方法简介
作者:アハハハ君 发布时间:2023-08-06 00:06:52
1. python三维图表绘制方法简介
python三维图表的绘制算是二维图表的一个进阶版本,本质上和二维图表的绘制并无差别,唯一的区别在于使用的库略有差异。
相较于二维图表使用的pyplot库,三维图表的绘制使用的是Axes3D库。
库引入语句为:
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
上下的操作就和二维图表绘制大差不差了,首先定义三维画布,然后向里面绘制三维图表,最后打印出结果即可。
下面,我们通过一些实例来进行说明。
2. 实例说明
1. 三维曲线图绘制
首先,我们来看一下三维曲线图的绘制。
三维曲线图的绘制和二维曲线图的绘制方法极其相似,只是我们需要做以下两点修改:
将画布修改为三维坐标系;
传参时同时传入x、y、z三个维度的坐标信号。
另外,plot函数需要修改三维曲线绘制的Axes3D.plot
函数。
给出代码样例如下:
import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
theta = numpy.linspace(0, 3.14*4, 200)
r = numpy.linspace(0, 1, 200)
x = r * numpy.cos(theta)
y = r * numpy.sin(theta)
z = numpy.linspace(0, 2, 200)
fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d')
ax1.plot(x, y, z)
plt.show()
运行即可得到一张三维曲线图。
2. 三维散点图绘制
下面,我们来看一下三维空间中的散点图绘制方法。
其方法其实挺简单的,就是先绘制x、y面的网点坐标,计算相应的z轴高度,而后创建一张三维图,然后通过Axes3D.scatter
函数进行散点图绘制即可。
我们给出具体的代码样例如下:
import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = numpy.linspace(-2, 2, 10)
y = numpy.linspace(-2, 2, 10)
xx, yy = numpy.meshgrid(x, y)
z = xx ** 2 - yy ** 2
fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d') # 创建三维坐标轴
ax1.scatter(xx, yy, z) # 绘制三维散点图
plt.show()
运行即可得到三维散点图。
3. 三维曲面图绘制
三维曲面图的绘制与三维极其类似,只需要将Axes3D.scatter
函数替换为Axes3D.plot_surface
函数即可。
我们就不再多做解释了,直接给出代码样例如下:
import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = numpy.linspace(-2, 2, 10)
y = numpy.linspace(-2, 2, 10)
xx, yy = numpy.meshgrid(x, y)
print(xx.shape, yy.shape)
z = xx ** 2 - yy ** 2
fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d') # 创建三维坐标轴
ax1.plot_surface(xx, yy, z) # 绘制三维曲面图
plt.show()
运行即可得到三维曲面图。
3. 参考链接
https://matplotlib.org/tutorials/toolkits/mplot3d.html
Python三维绘图–Matplotlib
来源:https://blog.csdn.net/codename_cys/article/details/108686439
猜你喜欢
- PS: 传送门——自定义Colorbars教程自定义colorbar(draw colorbar w
- //方法1:$ip = $_SERVER["REMOTE_ADDR"];echo $ip;//方法2:$user_IP
- 废话不多说了,直接上代码吧!#!/usr/bin/env python# coding=utf-8# 画一棵樱花import turtlei
- 豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https
- 数据库设计(Database Design)的概念:数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之
- Timer继承子Thread类,是Thread的子类,也是线程类,具有线程的能力和特征。这个类用来定义多久执行一个函数。它的实例是能够延迟执
- 在分析sIFR之前,先来快速的了解一下sIFR是什么,以及它是如何工作的。sIFR表示scalable Inman Flash Replac
- 设计师在抱怨开发人员不尊重Web标准,后台开发人员在抱怨为什么不可以增加一个空格。PM在抱怨为什么项目总是因为那些看似简单的问题而延期……如
- 权重初始化对于训练神经网络至关重要,好的初始化权重可以有效的避免梯度消失等问题的发生。在pytorch的使用过程中有几种权重初始化的方法供大
- 本文实例分析了Python中的对象,方法,类,实例,函数用法。分享给大家供大家参考。具体分析如下:Python是一个完全面向对象的语言。不仅
- 本文实例讲述了Python基于回溯法子集树模板解决旅行商问题(TSP)。分享给大家供大家参考,具体如下:问题旅行商问题(Traveling
- 目录1. Dash2. Pillow3. Colorama4. JmesPath5. Simplejson6. Emoji7. 进度条:pr
- 交互设计就是研究人与物体之间如何互动的问题,比如按电梯时,按钮立即高亮,同时屏幕上显示电梯现在所在楼层数,这个过程就是交互设计,而电梯按钮用
- 什么是 YARPYARP (另一个反向代理) 设计为一个库,提供核心代理功能,你可以根据应用程序的特定需求进行自定义。YARP 是使用 .N
- 感谢大家对《 CSS Sprites 样式生成工具 》的喜爱,综合了1.x版本时大家所提出来的意见和建议,2.0版本主要的改变有下面几点:修
- python list筛选包含字符的字段l = [‘123a',‘456b',‘789c']ll = [s for
- detectres.asp<HTML><head><TITLE>asp教程之全能屏幕分辨率侦测</
- 良好的编程习惯是每个程序员都应该具备的工作素质,在我的软件生涯中屡屡发现一些程序员的身上总有这样或者那样的坏毛病。这些毛病在一些从业时间不是
- 多版本并发控制Multiversion Concurrency Control大部分的MySQL的存储 引擎,比如InnoDB,Falcon
- 概述从前面的对Python基础知识方法介绍中,我们几乎是围绕Python内置方法进行探索实践,比如字符串、列表、字典等数据结构的内置方法,和