【python】【matplotlib】用python绘制三维视图和三视图

您所在的位置:网站首页 立体图形俯视图怎么画简单 【python】【matplotlib】用python绘制三维视图和三视图

【python】【matplotlib】用python绘制三维视图和三视图

2024-07-13 03:55| 来源: 网络整理| 查看: 265

效果在这里插入图片描述 代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 生成三维坐标数据 x = np.linspace(-1, 1, 100) y = np.linspace(-1, 1, 100) X, Y = np.meshgrid(x, y) Z = X**2 + Y**2 # 创建figure fig = plt.figure(figsize=(8, 8)) # 绘制三维坐标图 ax1 = fig.add_subplot(221, projection='3d') ax1.plot_surface(X, Y, Z) ax1.set_xlabel('X') ax1.set_ylabel('Y') ax1.set_zlabel('Z') # 设定三维视角 ax1.view_init(30, 45) # 设定轴标签和轴限制 ax1.set_xlabel('X') ax1.set_ylabel('Y') ax1.set_zlabel('Z') ax1.set_xlim(-1, 1) ax1.set_ylim(-1, 1) ax1.set_zlim(0, 2) # 绘制三个侧视图 ax2 = fig.add_subplot(222) ax2.contour(X, Y, Z) ax2.set_xlabel('X') ax2.set_ylabel('Y') ax2.set_title('XY Plane') ax3 = fig.add_subplot(223) ax3.contour(Y, Z, X) ax3.set_xlabel('Y') ax3.set_ylabel('Z') ax3.set_title('YZ Plane') ax4 = fig.add_subplot(224) ax4.contour(X, Z, Y) ax4.set_xlabel('X') ax4.set_ylabel('Z') ax4.set_title('XZ Plane') plt.show() 解析

这段代码演示了如何使用Matplotlib和mplot3d模块生成一个三维坐标图和三个侧视图。以下是代码的解释:

导入必要的模块: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D

该代码导入了NumPy模块(用于生成坐标数据),Matplotlib模块(用于绘制图形)和mplot3d模块(用于绘制三维坐标图)。

生成三维坐标数据: x = np.linspace(-1, 1, 100) y = np.linspace(-1, 1, 100) X, Y = np.meshgrid(x, y) Z = X**2 + Y**2

该代码生成了一个100x100的网格,代表了在x和y范围内的所有可能的坐标值。然后,我们使用这些坐标值计算每个点的z值,这里我们是计算每个点的z值等于该点的x和y的平方和。

创建figure: fig = plt.figure(figsize=(8, 8))

该代码创建了一个名为fig的figure,并将其大小设置为8x8英寸。

绘制三维坐标图: ax1 = fig.add_subplot(221, projection='3d') ax1.plot_surface(X, Y, Z) ax1.set_xlabel('X') ax1.set_ylabel('Y') ax1.set_zlabel('Z')

该代码使用add_subplot方法在figure中创建一个名为ax1的子图,并将其类型设置为三维坐标图。然后,我们使用plot_surface方法绘制三维坐标图,并使用set_xlabel、set_ylabel和set_zlabel方法设置轴标签。

设定三维视角: ax1.view_init(30, 45)

该代码使用view_init方法设置三维视角,这里我们将视角设置为30度的俯角和45度的方位角。

设定轴标签和轴限制: ax1.set_xlabel('X') ax1.set_ylabel('Y') ax1.set_zlabel('Z') ax1.set_xlim(-1, 1) ax1.set_ylim(-1, 1) ax1.set_zlim(0, 2)

该代码使用set_xlabel、set_ylabel和set_zlabel方法设置轴标签,并使用set_xlim、set_ylim和set_zlim方法设置轴限制。

绘制三个侧视图: ax2 = fig.add_subplot(222) ax2.contour(X, Y, Z) ax2.set_xlabel('X') ax2.set_ylabel('Y') ax2.set_title('XY Plane') ax3 = fig.add_subplot(223) ax3.contour(Y, Z, X) ax3.set_xlabel('Y') ax3.set_ylabel('Z') ax3.set_title('YZ Plane') ax4 = fig.add_subplot(224) ax4.contour(X, Z, Y) ax4.set_xlabel('X') ax4.set_ylabel('Z') ax4.set_title('XZ Plane')

该代码使用add_subplot方法在figure中创建三个名为ax2、ax3和ax4的子图,并使用contour方法绘制三个侧视图(XY平面、YZ平面和XZ平面)。然后,我们使用set_xlabel、set_ylabel和set_title方法设置轴标签和子图标题。

显示图形: plt.show()

该代码使用show方法显示所有图形。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3