import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
plt.style.use('seaborn-darkgrid')
n_radii = 8
n_angles = 36
# Make radii and angles spaces
radii = np.linspace(0.125, 1.0, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)[..., np.newaxis]
# Convert polar (radii, angles) coords to cartesian (x, y) coords.
x = np.append(0, (radii*np.cos(angles)).flatten())
y = np.append(0, (radii*np.sin(angles)).flatten())
z = np.sin(-x*y)
# Plot
fig, ax = plt.subplots(subplot_kw={
'projection': '3d'})
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.Blues)
ax.set(xticklabels=[],
yticklabels=[],
zticklabels=[])
plt.show()
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.PuBuGn_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.winter)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.viridis)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.twilight_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.terrain_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.tab20c)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.tab20b)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.tab20)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.tab20)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.seismic)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.rainbow)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.prism)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.ocean_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.nipy_spectral_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.nipy_spectral)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.magma)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.jet_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.jet)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.inferno)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.hsv_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.hsv)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.gnuplot_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.gnuplot2_r)
ax.plot_trisurf(x, y, z, vmin=z.min() * 2, cmap=cm.gnuplot2)
References: https://matplotlib.org/stable/plot_types/3D/trisurf3d_simple.html
Development tools: Visual Studio 2022 and WeChat Alt+A screenshot tool