【问题标题】:Animate matplotlib parametric example动画 matplotlib 参数示例
【发布时间】:2018-11-22 16:49:23
【问题描述】:

为 Python matlabplot parametric example 设置动画的 SIMPLIST 方法是什么?

我想逐项更新循环中的数据。可悲的是,这看起来很糟糕,并且总是闪烁着彩虹的每一种颜色! 有没有一种简单的方法可以让我在计算数据时更新数据?

from mpl_toolkits.mplot3d import Axes3D  # noqa: F401 unused import

import numpy as np
import matplotlib.pyplot as plt
import math

plt.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
i = 10
theta = 0
x=[]
y=[]
z=[]
# Prepare arrays x, y, z
while (theta < 4*np.pi):
    theta += 0.05
    z += [i] 
    r = i**2 + 1
    x += [r * math.sin(theta)]
    y += [r * math.cos(theta)]
    i +=1

    ax.plot(x, y, z)    
    plt.pause(0.01)

【问题讨论】:

标签: python animation matplotlib curve


【解决方案1】:

免责声明,这使用了我编写的名为celluloid 的库。在另一个answer 中有一些关于它的优点的讨论。话虽如此,这里基本上是您的代码,其中包含一些 celluloid 行:

import matplotlib
matplotlib.use('Agg')
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import math
from celluloid import Camera

plt.rcParams['legend.fontsize'] = 10
fig = plt.figure()
ax = fig.gca(projection='3d')
camera = Camera(fig)
i = 10
x=[]
y=[]
z=[]
# Prepare arrays x, y, z
for theta in np.arange(0, 4*np.pi, 0.05):
    z += [i]
    r = i**2 + 1
    x += [r * math.sin(theta)]
    y += [r * math.cos(theta)]
    i +=1
    ax.plot(x, y, z, color='blue')
    camera.snap()
anim = camera.animate(blit=False, interval=10)
anim.save('3d.mp4')

可以变成这样的gif:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多