いくつかのデータ点に飛行機を合わせて描画したいと思います。 回帰平面を見つけて点集合に描画する
あなたは私が手動で飛行機を作成し、現時点では見ることができるように、次になり
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
points = [(1.1,2.1,8.1),
(3.2,4.2,8.0),
(5.3,1.3,8.2),
(3.4,2.4,8.3),
(1.5,4.5,8.0)]
xs, ys, zs = zip(*points)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(xs, ys, zs)
point = np.array([0.0, 0.0, 8.1])
normal = np.array([0.0, 0.0, 1.0])
d = -point.dot(normal)
xx, yy = np.meshgrid([-5,10], [-5,10])
z = (-normal[0] * xx - normal[1] * yy - d) * 1. /normal[2]
ax.plot_surface(xx, yy, z, alpha=0.2, color=[0,1,0])
ax.set_xlim(-10,10)
ax.set_ylim(-10,10)
ax.set_zlim( 0,10)
plt.show()
:私の現在のコードはこれです。どうすれば計算できますか?どういうわけかscipy.optimize.minimize
で可能ですね。エラー機能の種類はそれほど重要ではありません。私は最小の正方形(垂直の点 - 平面 - 距離)が良いと思う。もしあなたの誰かが私にそれをする方法を教えてくれれば涼しいでしょう。
[なぜ異なる結果最適平面アルゴリズム]を参照してください(http://stackoverflow.com/いくつかの考えられるアプローチのための質問/ 15959411/best-fit-plane-algorithms-why-different-results) – alko