python绘制三维曲线图_matplotlib 三维图表绘制方法简介

1. python三维图表绘制方法简介

python三维图表的绘制算是二维图表的一个进阶版本,本质上和二维图表的绘制并无差别,唯一的区别在于使用的库略有差异。

相较于二维图表使用的pyplot库,三维图表的绘制使用的是Axes3D库。

库引入语句为:

1

2

from import pyplot as plt

from mpl_toolkits.mplot3dimport Axes3D

上下的操作就和二维图表绘制大差不差了,首先定义三维画布,然后向里面绘制三维图表,最后打印出结果即可。

下面,我们通过一些实例来进行说明。

2. 实例说明

1. 三维曲线图绘制

首先,我们来看一下三维曲线图的绘制。

三维曲线图的绘制和二维曲线图的绘制方法极其相似,只是我们需要做以下两点修改:

将画布修改为三维坐标系;

传参时同时传入x、y、z三个维度的坐标信号。

另外,plot函数需要修改三维曲线绘制的Axes3D.plot函数。

给出代码样例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import numpy

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3dimport 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()

运行即可得到一张三维曲线图。

1-200921000919.jpg

2. 三维散点图绘制

下面,我们来看一下三维空间中的散点图绘制方法。

其方法其实挺简单的,就是先绘制x、y面的网点坐标,计算相应的z轴高度,而后创建一张三维图,然后通过Axes3D.scatter函数进行散点图绘制即可。

我们给出具体的代码样例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

import numpy

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3dimport 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()

运行即可得到三维散点图。

1-200921000919-50.jpg

3. 三维曲面图绘制

三维曲面图的绘制与三维极其类似,只需要将Axes3D.scatter函数替换为Axes3D.plot_surface函数即可。

我们就不再多做解释了,直接给出代码样例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import numpy

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3dimport 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()

运行即可得到三维曲面图。

1-200921000920.jpg

3. 参考链接

到此这篇关于matplotlib 三维图表绘制方法简介的文章就介绍到这了,更多相关matplotlib 三维图表内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/codename_cys/article/details/108686439

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值