3軸散布図の作成方法はすぐに見つかりました。
作図はPythonのpyplotを使用し、CSVファイルはpandasを使って読み出します。
出来た散布図がこれです・・・。スタート位置とゴール位置が大幅にずれています。
坂を上って下って元の位置に戻ったのですが、上り坂と下り坂で歩幅が違うからかもしれません。
しかし、これは便利なツールです。
今までPythonはあまり興味が無かったのですが、これは使わない手はないでしょう。
ActiveXコントロールのような手軽さです。
コードは以下の通りです。
from matplotlib import pyplot as plt import pandas as pd col_names = ['x', 'y', 'z', 'm'] data = pd.read_csv('data.csv', names=col_names) listX = data["x"] listY = data["y"] listZ = data["z"] listM = data["m"] fig = plt.figure(figsize=(8, 6)) ax = fig.add_subplot(projection='3d') cm = plt.cm.get_cmap('RdYlBu') mappable = ax.scatter(listX, listY, listZ, c=listM, cmap=cm, linestyle='-') fig.colorbar(mappable, ax=ax) ax.plot(listX,listY,listZ, c="black", linestyle='-') plt.show()
以下はCSVデータを作るための、エクセルのワークシートの計算式です。
方角は90度単位にしました。
H=ROUND(方角/90,0)*90 X1=X0+ROUND(歩幅*SIN(RADIANS(H)),0) Y1=Y0+ROUND(歩幅*COS(RADIANS(H)),0)
データの一部は以下の通りです。X,Y,Z列のほかにマーク位置の列を追加しています。
X軸方向を北で計算しています。Z列は気圧です。
高度が上がると気圧が下がってしまうので-1をかけていますが、pyplotで指定できるのかもしれません。
XYZ位置は線でつないで、マーク位置を散布図のように表示しています。
-50,50,-2425,1 -100,50,-2427, -150,50,-2426, -200,50,-2425, -250,50,-2428, -300,50,-2427,2
精度が良くなれば、なにか屋外用ゲームに使えるかもしれません。