How can I combine a 3D scatter plot with a 3D surface plot while keeping the surface plot transparent so that I can still see all the points?
Using siluaty's example; instead of using transparency through the cmap=theCM command, you can adjust the alpha value. This may get you what you want?
ax.plot_surface(x_surf, y_surf, z_surf, cmap=cm.hot, alpha=0.2)