""" ===================== 3D surface (colormap) ===================== Demonstrates plotting a 3D surface colored with the coolwarm colormap. The surface is made opaque by using ``antialiased=False``. Also demonstrates using the `.LinearLocator` and custom formatting for the z axis tick labels. """ import matplotlib.pyplot as plt import numpy as np from matplotlib import cm from matplotlib.ticker import LinearLocator fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) # Make data. X = np.arange(-5, 5, 0.25) Y = np.arange(-5, 5, 0.25) X, Y = np.meshgrid(X, Y) R = np.sqrt(X**2 + Y**2) Z = np.sin(R) # Plot the surface. surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0, antialiased=False) # Customize the z axis. ax.set_zlim(-1.01, 1.01) ax.zaxis.set_major_locator(LinearLocator(10)) # A StrMethodFormatter is used automatically ax.zaxis.set_major_formatter('{x:.02f}') # Add a color bar which maps values to colors. fig.colorbar(surf, shrink=0.5, aspect=5) plt.show() # %% # # .. admonition:: References # # The use of the following functions, methods, classes and modules is shown # in this example: # # - `matplotlib.pyplot.subplots` # - `matplotlib.axis.Axis.set_major_formatter` # - `matplotlib.axis.Axis.set_major_locator` # - `matplotlib.ticker.LinearLocator` # - `matplotlib.ticker.StrMethodFormatter` # # .. tags:: # plot-type: 3D, # styling: colormap, # level: advanced