![
XとZ(Y)の値がそれぞれ10点ずつ分かっています。この値を使いプロットした点と近似線を描きたいと考えています。一度目のグラフはxの点の値を2点とzの点の値の2点を利用した2点を結ぶグラフを、二度目のグラフはxの点の値を3点とzの点の値の3点を利用した3点を結ぶ近似線を描きたいと考えています。そのような流れで9回目は10点を使ったグラフを描きたいです。分かる方がいらっしゃればご協力をお願いします。近似の方法については理解しているので連続したグラフの書き方を教えて頂きたいです。
python
1コード 2import matplotlib.pyplot as plt 3import numpy as np 4import math 5 6 7M1_pc_x= -246.85208505175171 8M2_pc_x= -206.0777831639721 9M3_pc_x= -158.6928488559446 10M4_pc_x= -109.03772091048792 11M5_pc_x= -56.70788713910241 12M6_pc_x= 57.381886142634436 13M7_pc_x= 119.77207995050162 14M8_pc_x= 185.73675716265856 15M9_pc_x= 255.11219747743775 16M10_pc_x= 327.6548726847677 17 18x = 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]) 19 20 21M1_pc_z= 621 22M2_pc_z= 632 23M3_pc_z= 648 24M4_pc_z= 666 25M5_pc_z= 687 26M6_pc_z= 719 27M7_pc_z= 744 28M8_pc_z= 767 29M9_pc_z= 789 30M10_pc_z= 810 31 32z1 = 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]) 33 34xz1 = x*z1 35x2 = x*x 36n = len(x) 37for n in range(len(x)): 38 m_y = ((n*sum(xz1)-sum(x)*sum(z1)) / (n*sum(x2)-sum(x)*sum(x))) 39 y_angle = math.atan(m_y) 40 b_y = ((sum(z1) - m_y*sum(x)) / n) 41 Y1 = (m_y*x) + b_y 42 43for Mc_pc_x , Mc_pc_z in zip (x,z1): 44 45 fig = plt.figure(figsize=(8.0, 6.0)) 46 plt.title("yaw") 47 plt.xlabel("X-axis") 48 plt.ylabel("Z-axis") 49 50 51 plt.scatter(i,j,label="original") 52 plt.plot(i,Y1,label="fitting",color='r') 53 plt.legend() 54 55 56plt.show()
現在は1つ目のグラフで1つ目の値が、2つ目のグラフで2つ目の値のみが、・・・10個目のグラフで10個目の値のみが記される状況となっています。(近似線は全てに表示されています)
回答2件
あなたの回答
tips
プレビュー