代码如下:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.animation import FuncAnimation
# 1.生成测试数据
xx = np.array([13, 5, 25, 13, 9, 19, 3, 39, 13, 27])
yy = np.array([4, 38, 16, 26, 7, 19, 28, 10, 17, 18])
zz = np.array([7, 19, 6, 12, 25, 19, 23, 25, 10, 15])
# 2.创建画布和3d坐标系实例
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 3.绘制初始的3D散点图
star = ax.scatter(xx, yy, zz, c='white', marker='*', s=610, lw=1, edgecolor='k')
# 4.更新画面函数(回调函数)
def update(i):
if i % 2:
color = 'pink'
else:
color = 'white'
star = ax.scatter(xx, yy, zz, c=color, marker='*', s = 630, lw=1, edgecolor='k')
return star
def init_draw():
star = ax.scatter(xx, yy, zz, c='r', marker='*', s = 900, lw=1, edgecolor='k')
return star
# 5.创建动画实例
ani = FuncAnimation(fig=fig, func=update, frames=None, interval=200, blit=True)
# 6.将动画保存为gif图片(用于上传博客)
ani.save("pratice7.4.gif", writer='pillow')
# 7.展示图表
plt.show()
运行结果如下: