python绘制三维曲线图_Python笔记:matplotlib三维图表绘制
⽅法简介
1. python三维图表绘制⽅法简介
python三维图表的绘制算是⼆维图表的⼀个进阶版本,本质上和⼆维图表的绘制并⽆差别,唯⼀的区别在于使⽤的库略有差异。
相较于⼆维图表使⽤的pyplot库,三维图表的绘制使⽤的是Axes3D库。
库引⼊语句为:
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
上下的操作就和⼆维图表绘制⼤差不差了,⾸先定义三维画布,然后向⾥⾯绘制三维图表,最后打印出结果即可。
下⾯,我们通过⼀些实例来进⾏说明。
2. 实例说明
1. 三维曲线图绘制linspace numpy
⾸先,我们来看⼀下三维曲线图的绘制。
三维曲线图的绘制和⼆维曲线图的绘制⽅法极其相似,只是我们需要做以下两点修改:
将画布修改为三维坐标系;
传参时同时传⼊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 * s(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 = shgrid(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 = shgrid(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. 参考链接

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。