Note
Go to the endto download the full example code.
3D plot projection types#
Demonstrates the different camera projections for 3D plots, and the effects ofchanging the focal length for a perspective projection. Note that Matplotlibcorrects for the 'zoom' effect of changing the focal length.
The default focal length of 1 corresponds to a Field of View (FOV) of 90 deg.An increased focal length between 1 and infinity "flattens" the image, while adecreased focal length between 1 and 0 exaggerates the perspective and givesthe image more apparent depth. In the limiting case, a focal length ofinfinity corresponds to an orthographic projection after correction of thezoom effect.
You can calculate focal length from a FOV via the equation:
Or vice versa:
importmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportaxes3dfig,axs=plt.subplots(1,3,subplot_kw={'projection':'3d'})# Get the test dataX,Y,Z=axes3d.get_test_data(0.05)# Plot the dataforaxinaxs:ax.plot_wireframe(X,Y,Z,rstride=10,cstride=10)# Set the orthographic projection.axs[0].set_proj_type('ortho')# FOV = 0 degaxs[0].set_title("'ortho'\nfocal_length = ∞",fontsize=10)# Set the perspective projectionsaxs[1].set_proj_type('persp')# FOV = 90 degaxs[1].set_title("'persp'\nfocal_length = 1 (default)",fontsize=10)axs[2].set_proj_type('persp',focal_length=0.2)# FOV = 157.4 degaxs[2].set_title("'persp'\nfocal_length = 0.2",fontsize=10)plt.show()

Tags:plot-type: 3Dstyling: small-multiplescomponent: subplotlevel: intermediate