matplotlib 3.5.1

>>> """
==========================
Triangular 3D contour plot
==========================

Contour plots of unstructured triangular grids.

The data used is the same as in the second plot of trisurf3d_demo2.
tricontourf3d_demo shows the filled version of this example.
"""
... 
... import matplotlib.pyplot as plt
... import matplotlib.tri as tri
... import numpy as np
... 
... n_angles = 48
... n_radii = 8
... min_radius = 0.25
... 
... # Create the mesh in polar coordinates and compute x, y, z.
... radii = np.linspace(min_radius, 0.95, n_radii)
... angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)
... angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)
... angles[:, 1::2] += np.pi/n_angles
... 
... x = (radii*np.cos(angles)).flatten()
... y = (radii*np.sin(angles)).flatten()
... z = (np.cos(radii)*np.cos(3*angles)).flatten()
... 
... # Create a custom triangulation.
... triang = tri.Triangulation(x, y)
... 
... # Mask off unwanted triangles.
... triang.set_mask(np.hypot(x[triang.triangles].mean(axis=1),
...  y[triang.triangles].mean(axis=1))
...  < min_radius)
... 
... ax = plt.figure().add_subplot(projection='3d')
... ax.tricontour(triang, z, cmap=plt.cm.CMRmap)
... 
... # Customize the view angle so it's easier to understand the plot.
... ax.view_init(elev=45.)
... 
... plt.show()
...