如何使用 Matplotlib 制作三维图形动画?
原文:https://www.geeksforgeeks.org/how-animate-3d-graph-use-matplotlib/
前提条件:【matplot lib】、【num py】
图形表示总是容易理解,并且在任何书面或口头交流之前被采用和优选。使用 Matplotlib,我们可以绘制不同类型的图形数据。在这篇文章中,我们将试图理解,我们如何使用 matplotlib 创建一个美丽的图形,并使用 Matplotlib 创建一个三维动画图形。
进场:
- 导入所需模块。
- 创建三维图形
- 创建样本数据
- 制作 360 个视图的动画。
- 显示图形。
第一步:导入库。
蟒蛇 3
from numpy import linspace
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
第二步:使用 plt.figure()的目的是创建一个图形对象。我们将使用 plt.axes()创建单独的轴集,您将在其中绘制每一个轴。
蟒蛇 3
from numpy import linspace
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection = '3d')
第三步:在这一步中,我们将创建我们的数据并绘制不同的图表。
蟒蛇 3
from numpy import linspace
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection='3d')
t = np.linspace(0, 1, 1000, endpoint=True)
ax.plot3D(t, signal.square(2 * np.pi * 5 * t))
第四步:图形 360 度移动。
view_init(elev=,azim=)这可用于以编程方式旋转轴。elev '存储 z 平面上的仰角。“azim”存储 x,y 平面中的方位角。构造函数。matplotlib 库 pyplot 模块中的 draw()函数用于重绘当前图形
蟒蛇 3
from numpy import linspace
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection='3d')
t = np.linspace(0, 1, 1000, endpoint=True)
ax.plot3D(t, signal.square(2 * np.pi * 5 * t))
for angle in range(0, 360):
ax.view_init(angle,30)
plt.draw()
plt.pause(.001)
例 1: 在这个例子中,我们绘制了一个方波,我们将看到它的 360 度视图。
linespace():linspace 函数是 Python 中用于创建数字序列的工具。matplotlib 库的 plot3D()功能用于进行三维绘图。
蟒蛇 3
from numpy import linspace
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
# Creating 3D figure
fig = plt.figure(figsize = (8, 8))
ax = plt.axes(projection = '3d')
# Creating Dataset
t = np.linspace(0, 1, 1000, endpoint = True)
ax.plot3D(t, signal.square(2 * np.pi * 5 * t))
# 360 Degree view
for angle in range(0, 360):
ax.view_init(angle, 30)
plt.draw()
plt.pause(.001)
plt.show()
输出:
示例 2: 在本例中,我们绘制了一个螺旋图,我们将看到它的 360 度视图
蟒蛇 3
from numpy import linspace
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
# Creating 3D figure
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection='3d')
# Creating Dataset
z = np.linspace(0, 15, 1000)
x = np.sin(z)
y = np.cos(z)
ax.plot3D(x, y, z, 'green')
# 360 Degree view
for angle in range(0, 360):
ax.view_init(angle, 30)
plt.draw()
plt.pause(.001)
plt.show()
输出:
示例 3: 在本例中,我们将显示抛物线图。
PLT.rcparams(axes.prop_cycle):-调用返回 itertoools.cycle . Linespace():linspace 函数是 Python 中创建数字序列的工具。
蟒蛇 3
from numpy import linspace
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
# Creating 3D figure
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection = '3d')
# Creating Dataset
color_cycle = plt.rcParams['axes.prop_cycle']()
x = linspace(0, 1, 51)
a = x*( 1 - x)
b = 0.25 - a
c = x*x*(1 - x)
d = 0.25-c
ax.plot3D(x, a, **next(color_cycle))
# 360 Degree view
for angle in range(0, 360):
ax.view_init(angle, 30)
plt.draw()
plt.pause(.001)
plt.show()
输出: