El método contour3D nos permite crear gráficos de curvas de nivel en 3D. En su configuración más básica simplemente recibe como argumentos los arrays X, Y y Z:
X = np.linspace(-1.2, 1.2, 100)
Y = np.linspace(-1.2, 1.2, 100)
X, Y = np.meshgrid(X, Y)
Z = np.abs(0.4 ** 2 - (0.6 - (X ** 2 + Y ** 2) ** 0.5) ** 2) ** 0.5
Por defecto, las curvas de nivel se crean paralelas al eje x (es decir, en torno al eje y), pero el parámetro zdir permite modificar el eje de referencia. Además, el parámetro levels nos permite escoger el número de niveles a mostrar: