Matplotlib 3D散点图动画一次一点

时间:2014-12-18 10:53:44

标签: python

我想通过一次绘制一个点来为3D散点图设置动画。效果将是显示随着点填充而出现的3D功能。

如果我使用matplotlib FuncAnimation,我的init应绘制一个点,然后开始填充。如何在3D中绘制单个点?

1 个答案:

答案 0 :(得分:2)

谢谢安德鲁让我看看MayaVi2中的points3d。与此同时,我尝试了以下代码。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
plt.ion()

fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111, projection='3d')

def fun(x,y):
    return ((x**2 - y**2) * np.exp(-x**2 - y**2)) 

x = y = np.arange(-3.0,3.0, 0.05)
X, Y = np.meshgrid(x,y)
zs = np.array([fun(x,y) for x,y in zip(np.ravel(X), np.ravel(Y))])
Z = zs.reshape(X.shape)

for i in range(len(X)):
    for j in range(len(Y)):
        ax.scatter(X[i][j], Y[i][j], Z[i][j], c='r', marker='o')
        plt.draw()
        plt.pause(0.5)

但是只有在绘制了所有点之后才会显示该图。它没有一个接一个地显示每个点的情节!!