【发布时间】:2019-06-06 17:18:50
【问题描述】:
我正在尝试绘制从x, y, z 数组生成的多边形的表面
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
print("numpy version: " + np.__version__)
# [x, y, z] coordinates
p1 = [322697.1875, 3663966.5, -30000.0]
p2 = [325054.34375, 3663966.5, -30000.0]
p3 = [325054.34375, 3665679.5, -30000.0]
p4 = [322697.1875, 3665679.5, -30000.0]
p5 = [322697.1875, 3663966.5, -27703.123046875]
p6 = [325054.34375, 3663966.5, -27703.154296875]
p7 = [325054.34375, 3665679.5, -27703.70703125]
p8 = [322697.1875, 3665679.5, -27703.673828125]
points = [p1, p2, p3, p4, p5, p6, p7, p8]
points = np.array(points)
x = points[:, 0]
y = points[:, 1]
z = points[:, 2]
X, Y = np.meshgrid(x, y)
zr = np.tile(z, [8, 1])
fig = plt.figure(figsize=(16,10))
ax = plt.axes(projection = '3d')
ax.plot_surface(X, Y, zr, alpha=0.5)
plt.show()
我希望输出将多边形的每一侧显示为阴影。我做错了什么?
【问题讨论】:
-
见this question。如果你有一组点,而不是一个函数
f(x,y) -> z,它就会变得更加困难,因为有多种方法可以连接这些点。
标签: python python-3.x numpy matplotlib