三角形三维等高线图

非结构化三角形网格的等高线图。

使用的数据与trisurf3d_demo2的第二个图中的数据相同。 tricontourf3d_demo显示此示例的填充版本。

三角形三维等高线图示例

  1. # This import registers the 3D projection, but is otherwise unused.
  2. from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
  3. import matplotlib.pyplot as plt
  4. import matplotlib.tri as tri
  5. import numpy as np
  6. n_angles = 48
  7. n_radii = 8
  8. min_radius = 0.25
  9. # Create the mesh in polar coordinates and compute x, y, z.
  10. radii = np.linspace(min_radius, 0.95, n_radii)
  11. angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)
  12. angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)
  13. angles[:, 1::2] += np.pi/n_angles
  14. x = (radii*np.cos(angles)).flatten()
  15. y = (radii*np.sin(angles)).flatten()
  16. z = (np.cos(radii)*np.cos(3*angles)).flatten()
  17. # Create a custom triangulation.
  18. triang = tri.Triangulation(x, y)
  19. # Mask off unwanted triangles.
  20. triang.set_mask(np.hypot(x[triang.triangles].mean(axis=1),
  21. y[triang.triangles].mean(axis=1))
  22. < min_radius)
  23. fig = plt.figure()
  24. ax = fig.gca(projection='3d')
  25. ax.tricontour(triang, z, cmap=plt.cm.CMRmap)
  26. # Customize the view angle so it's easier to understand the plot.
  27. ax.view_init(elev=45.)
  28. plt.show()

下载这个示例