I came up with the following code to produce a figure in python+matplotlib:
fig = plt.figure(figsize=(10,8)) ax = fig.add_subplot(1,1,1, projection='3d') ax.plot_surface(KX[kxl3d:kxr3d,kxl3d:kxr3d], KY[kxl3d:kxr3d,kxl3d:kxr3d], BLP[kxl3d:kxr3d,kxl3d:kxr3d], rstride=8, cstride=8, alpha=0.4) for idx in range(3): ax.plot(kx[x_points]+momentum_spi[idx,0], ky[y_points]+momentum_spi[idx,1], energy_spi[idx], linestyle='none', marker='o', markerfacecolor=color_spi[idx], markersize=5) ax.set_xlim(kl3d, kr3d) ax.set_ylim(kl3d, kr3d) ax.set_xlabel(r'$k_x[\mu m^{-1}]$') ax.set_ylabel(r'$k_y[\mu m^{-1}]$') ax.set_zlabel(r'$\epsilon-\omega_X[\gamma_p]$') The output is: 
My question is, how can I
- move the z axis label and tick labels to the left hand side of the figure, so that they are not overwritten by the rings and
- increase the space between the x and y tick labels and the axes labels (notice they overlap a little, especially for the y axis).
