首页 > 解决方案 > 使用 matplotlib 将 3D 散点图动画化为 gif 最终为空

问题描述

所以这是我的代码:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation


raw = np.random.rand(100,3)
fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')
x = raw[:, 0]
y = raw[:, 1]
z = raw[:, 2]

ax.scatter(x, y, -z, zdir='z', c='black', depthshade=False, s=0.2, marker=',')

def rotate(angle):
    ax.view_init(azim=angle)

print("Making animation")
rot_animation = animation.FuncAnimation(fig, rotate, frames=np.arange(0, 362, 2), interval=100)
rot_animation.save('rotation.gif', dpi=80, writer='imagemagick')

不幸的是,生成的 gif 不显示点,只是旋转轴。这是生成的 gif:https ://giphy.com/gifs/eeVv2oifDNhRYN9xMi

谢谢大家!

标签: python-3.xanimationmatplotlibgifscatter

解决方案


问题有点,你想在图表上看到什么。目前,您创建 0.2 点大像素,因此像素小于 1 个像素。

也许你想使用

s=1, marker='.'

推荐阅读