我有一组来自 4-6个向量的坐标x,y,z。我想绘制相应的棱镜。但是我的线是交叉的,根本看起来不像是棱镜。
我假设我必须对数据集进行排序,但是我不确定如何或是否正确答案。
这显然是错误的:
这看起来应该是这样的:
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
p = np.array([[-43.11150999, -118.14365791, -1100.99389988],
[-27.97693445,-124.54828379, -1089.54038197],
[-55.99892873, -120.42384095, -1084.32576297],
[-40.75143664, -133.41566716, -1077.33745869],
[-43.2165748, -34.770722, -1030.85272686],
[-27.89568594, -43.06953117, -1021.03437003],
[-56.072327, -44.66085799, -1019.15166512],
[-40.75143814, -52.95966716, -1009.3333083]])
ax.scatter3D(p[:, 0], p[:, 1], p[:, 2])
x = np.array([[-43.11150999], [-27.97693445], [-55.99892873], [-40.75143664], [-43.2165748],[-27.89568594],[-56.072327],[-40.75143814]])
y = np.array([[-118.14365791], [-124.54828379], [-120.42384095], [-133.41566716], [-34.770722],[-43.06953117],[-44.66085799],[-52.95966716]])
z …Run Code Online (Sandbox Code Playgroud)