x = np.random.rand(30)
y = np.random.rand(30)
z = np.random.rand(30)
col = np.arange(30)
fig = plt.figure()
ax3D = fig.add_subplot(111, projection='3d')
scatCollection = ax3D.scatter(x, y, z, s=30, c=col, marker='o', cmap=cm)

def forceUpdate(event):
    global scatCollection
scatCollection.changed()
fig.canvas.mpl_connect('draw_event', forceUpdate)
plt.savefig('image1.png')
plt.savefig('image2.png')
Цвет рассеяния Matplotlib 3D потерян после перерисовки