在 Matplotlib 中製作一個旋轉的三維圖形
要製作旋轉的三維圖形,在 matplotlib 中,我們可以使用 Animation 類來重複呼叫一個函式。
步驟
初始化網格數、每秒呼叫函式的頻率以及幀數的變數。
為曲線建立 x、y 和 z 陣列。
製作函式,使用 lambda 函式製作 z 陣列。
為了將函式傳給 animation 類,製作一個使用者定義函式來移除上一次繪圖,並使用 x、y 和 z 陣列來繪圖。
建立一個新圖或啟用一個現有圖。
使用 subplots() 方法新增一個子圖排列。
使用 set_zlim() 方法來設定 Z 軸的限制。
呼叫 animation 類,來製作曲面圖的動畫。
要展示動畫圖,使用 show() 方法。
示例
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
N = 50
fps = 250
frn = 75
x = np.linspace(-4, 4, N + 1)
x, y = np.meshgrid(x, x)
zarray = np.zeros((N + 1, N + 1, frn))
f = lambda x, y, sig: 1 / np.sqrt(sig) * np.exp(-(x ** 2 + y ** 2) / sig ** 2)
for i in range(frn):
zarray[:, :, i] = f(x, y, 1.5 + np.sin(i * 2 * np.pi / frn))
def change_plot(frame_number, zarray, plot):
plot[0].remove()
plot[0] = ax.plot_surface(x, y, zarray[:, :, frame_number], cmap="afmhot_r")
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
plot = [ax.plot_surface(x, y, zarray[:, :, 0], color='0.75', rstride=1,
cstride=1)]
ax.set_zlim(0, 1.1)
ani = animation.FuncAnimation(fig, change_plot, frn, fargs=(zarray, plot),
interval=1000 / fps)
ani.save('526.gif')
plt.show()輸出

廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP