python - 如何在 2D 中分析任意 3D 平面

标签 python numpy matplotlib linear-algebra pca

我需要在最佳拟合 2d 平面中以 2d (x,y) 方式分析 3d 曲线,其中原始 3d 曲线覆盖可能的最大区域。

鉴于: 形成任意 3D 曲线的 2 组数据点 (x,y,z)。

有: 使用最小二乘平面拟合计算出 2 个表面平面

需要: 1)将每个原始数据集的数据点投影到相应的最小二乘拟合平面上 2)将投影数据点转换为二维 XY 平面,以便在最合适的平面背景下对原始曲线进行二维分析。

知道如何获得这个吗?我认为第一步应该是将每个原始数据点正交投影到计算平面上 - 正确吗?

但我不知道如何将这些东西从那里转换为 2D 几何体,我将在其中处理 (x,y) 数据点?

下图显示了原始数据图(红色和蓝色曲线)及其计算平面(红色和蓝色表面)

So far - so good

最佳答案

如果您成功找到了平面,正如您所说,最好的办法是旋转和平移您的坐标系,以便在它们的自然投影中查看这些点。

如果您的 (x,y,z) 数据位于一个平面上,那么您知道 a*x+b*y+c*z = 1。如果您能够找到 a、b 和 c,则您可以使用转换来绘制三元图 ( Take a look at wikipedia)

您唯一需要做的就是按如下方式转换您的坐标:

x' = a*x ,y' = b*y, z' = c*z

这样,你的数据就会满足x'+y'+z' = 1。之后,使用变换 x'' = 0.5*(2y'+z') 和 y'' = sqrt(3)/2 * z',您的数据将以其自然投影显示。 如果您的数据始终为正,则曲线将位于三角形区域。

关于python - 如何在 2D 中分析任意 3D 平面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636155/

相关文章:

python - matplotlib - 图对象没有属性 'plot' 。引用问题

python - 无法在 pymongo 中使用格式显示结果

python - 我的一些 Python 包无法在 OSX 控制台中运行

python - 从 Matplotlib 集合中检索标记

numpy - opencv-python 在苹果 m1 芯片中编译失败

python - 返回彼此相等的两个数组的值的索引的最快方法是什么?

python - 如何为 2D 直方图选择自定义 bin 大小?

python - 从 float32 到 float16 的 numpy astype

python - pip 需求文件中的可选依赖项

Pythonic 多态参数