1 绘制曲面图
当绘制3D曲面图时,mpl_toolkits.mplot3d
模块中的 Axes3D
对象提供了多种方法来呈现不同类型的曲面图。以下是一些常见的3D曲面图类型以及示例:
曲面图:使用 plot_surface
函数来绘制平滑的曲面图。
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] # 创建示例数据 x = np.linspace(-5, 5, 50) y = np.linspace(-5, 5, 50) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) # 创建图形和子图 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 绘制曲面图 ax.plot_surface(X, Y, Z, cmap='viridis') # 添加标题 plt.title('3D曲面图示例') # 添加坐标轴标签 ax.set_xlabel('X轴') ax.set_ylabel('Y轴') ax.set_zlabel('Z轴') # 显示图形 plt.show()
彩虹曲面图:使用 plot_surface
函数,并通过设置 cmap
参数为"rainbow"来绘制带有彩虹颜色映射的曲面图。
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] # 创建示例数据 x = np.linspace(-5, 5, 50) y = np.linspace(-5, 5, 50) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) # 创建图形和子图 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 绘制带有彩虹颜色映射的曲面图 ax.plot_surface(X, Y, Z, cmap='rainbow') # 添加标题 plt.title('带有彩虹颜色映射的3D曲面图示例') # 添加坐标轴标签 ax.set_xlabel('X轴') ax.set_ylabel('Y轴') ax.set_zlabel('Z轴') # 显示图形 plt.show()
2 绘制3D填充图
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 创建数据 x = np.linspace(0, 2*np.pi, 100) y = np.linspace(0, 2*np.pi, 100) X, Y = np.meshgrid(x, y) Z = np.sin(X) * np.cos(Y) # 创建图形和轴 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 绘制3D填充图 ax.plot_surface(X, Y, Z, cmap='coolwarm') # 添加填充区域1 ax.plot([x[0], x[-1]], [y[0], y[0]], [Z[0][0], Z[0][-1]], color='blue', alpha=0.5) ax.plot([x[0], x[-1]], [y[-1], y[-1]], [Z[-1][0], Z[-1][-1]], color='red', alpha=0.5) # 添加填充区域2 ax.plot([x[0], x[0]], [y[0], y[-1]], [Z[0][0], Z[-1][0]], color='blue', alpha=0.5) ax.plot([x[-1], x[-1]], [y[0], y[-1]], [Z[0][-1], Z[-1][-1]], color='red', alpha=0.5) # 设置坐标轴标签 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') # 显示图形 plt.show()
首先,我们创建了数据集 X、Y 和 Z,这些数据用于定义三维空间中的坐标和值。然后,我们创建了图形对象和轴对象,并使用 plot_surface 函数将数据展示为3D曲面。接下来,通过调用 plot 函数来绘制填充区域的边界线,使用不同颜色和透明度的线条表示不同的区域。最后,我们设置了坐标轴标签并显示图形。
3 绘制极坐标图
3D极坐标图可以使用 polar
函数进行绘制。该函数使用极坐标表示数据,并通过指定角度、半径和值来确定数据点的位置。
下面是一个绘制3D极坐标图的示例:
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 创建数据 theta = np.linspace(0, 2*np.pi, 100) r = np.linspace(0, 1, 100) Theta, R = np.meshgrid(theta, r) X = R * np.cos(Theta) Y = R * np.sin(Theta) Z = np.exp(-R**2) # 创建图形和轴 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 绘制3D极坐标图 ax.plot_surface(X, Y, Z, cmap='viridis') # 设置坐标轴标签 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') # 显示图形 plt.show()
在这个示例中,我们使用 np.meshgrid
创建了极坐标的角度 theta 和半径 r,并计算了由 X、Y 和 Z 表示的数据点坐标。然后,我们使用 plot_surface
函数绘制了三维曲面。最后,我们设置了坐标轴标签并显示图形。