z = r * z + zCenter
return x, y, z
x = 10 * np.random.rand(20)
y = 10 * np.random.rand(20)
z = 10 * np.random.rand(20)
r = np.random.rand(20)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for xi, yi, zi, ri in zip(x, y, z, r):
    xs, ys, zs = drawSphere(xi, yi, zi, ri)
ax.plot_wireframe(xs, ys, zs, color='r')
plt.show()
Scatter Plot 3D with labels and spheres