xx = sin(phi) * cos(theta)
yy = sin(phi) * sin(theta)
zz = cos(phi)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, rstride=1, cstride=1, color='c', alpha=0.3,
    linewidth=0)
ax.scatter(xx, yy, zz, color='k', s=20)
ax.set_xlim([-1, 1])
ax.set_ylim([-1, 1])
ax.set_zlim([-1, 1])
ax.set_aspect('equal')
plt.tight_layout()
plt.show()
Plotting points on the surface of a sphere in Python's matplotlib