python已知长宽高用plt画长方体
时间: 2024-12-20 16:30:11 浏览: 11
在Python的matplotlib库中,虽然直接绘制三维长方体的功能并不像一些专门用于数据可视化的库(如mpl_toolkits.mplot3d)那样直观,但是你可以通过结合numpy数组来创建长方体的数据,并利用matplotlib的plot_surface函数来近似绘制。下面是一个简单的示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import PolyCollection
# 定义长方体的尺寸
length = 5
width = 4
height = 3
# 创建网格
x = np.linspace(0, length, 10) # 横向长度均匀分为10份
y = np.linspace(0, width, 8) # 纵向宽度均匀分为8份
X, Y = np.meshgrid(x, y)
# 创建长方体的六个面(前、后、左、右、上、下)
faces = [
[(x[0], y[0]), (x[0], y[-1]), (x[-1], y[-1]), (x[-1], y[0])], # 前后
[(x[0], y[0]), (x[-1], y[0]), (x[-1], y[-1]), (x[0], y[-1])], # 左右
[(x[0], 0), (x[-1], 0), (x[-1], height), (x[0], height)], # 上下
]
# 绘制长方体
verts = [np.array(face) for face in faces]
face_color = 'blue'
poly = PolyCollection(verts, closed=True, facecolors=face_color)
ax = plt.figure().add_subplot(projection='3d')
ax.add_collection3d(poly)
# 设置坐标轴范围
ax.set_xlim([0, length])
ax.set_ylim([0, width])
ax.set_zlim([0, height])
# 显示图形
plt.show()
阅读全文