![
XとZ(Y)の値がそれぞれ10点ずつ分かっています。この値を使いプロットした点と近似線を描きたいと考えています。一度目のグラフはxの点の値を2点とzの点の値の2点を利用した2点を結ぶグラフを、二度目のグラフはxの点の値を3点とzの点の値の3点を利用した3点を結ぶ近似線を描きたいと考えています。そのような流れで9回目は10点を使ったグラフを描きたいです。分かる方がいらっしゃればご協力をお願いします。近似の方法については理解しているので連続したグラフの書き方を教えて頂きたいです。
python
コード import matplotlib.pyplot as plt import numpy as np import math M1_pc_x= -246.85208505175171 M2_pc_x= -206.0777831639721 M3_pc_x= -158.6928488559446 M4_pc_x= -109.03772091048792 M5_pc_x= -56.70788713910241 M6_pc_x= 57.381886142634436 M7_pc_x= 119.77207995050162 M8_pc_x= 185.73675716265856 M9_pc_x= 255.11219747743775 M10_pc_x= 327.6548726847677 x = np.array([M1_pc_x, M2_pc_x, M3_pc_x, M4_pc_x, M5_pc_x, M6_pc_x, M7_pc_x, M8_pc_x, M9_pc_x, M10_pc_x]) M1_pc_z= 621 M2_pc_z= 632 M3_pc_z= 648 M4_pc_z= 666 M5_pc_z= 687 M6_pc_z= 719 M7_pc_z= 744 M8_pc_z= 767 M9_pc_z= 789 M10_pc_z= 810 z1 = np.array([M1_pc_z, M2_pc_z, M3_pc_z, M4_pc_z, M5_pc_z, M6_pc_z, M7_pc_z, M8_pc_z, M9_pc_z, M10_pc_z]) xz1 = x*z1 x2 = x*x n = len(x) for n in range(len(x)): m_y = ((n*sum(xz1)-sum(x)*sum(z1)) / (n*sum(x2)-sum(x)*sum(x))) y_angle = math.atan(m_y) b_y = ((sum(z1) - m_y*sum(x)) / n) Y1 = (m_y*x) + b_y for Mc_pc_x , Mc_pc_z in zip (x,z1): fig = plt.figure(figsize=(8.0, 6.0)) plt.title("yaw") plt.xlabel("X-axis") plt.ylabel("Z-axis") plt.scatter(i,j,label="original") plt.plot(i,Y1,label="fitting",color='r') plt.legend() plt.show()
現在は1つ目のグラフで1つ目の値が、2つ目のグラフで2つ目の値のみが、・・・10個目のグラフで10個目の値のみが記される状況となっています。(近似線は全てに表示されています)
まだ回答がついていません
会員登録して回答してみよう