前提・実現したいこと
x、y、zのような位置と物理量を持った3次元のデータ配列を結び付けて流線図を作りたいです。
イメージとしてはhttps://jupiter.geo.kyushu-u.ac.jp/machida/research.htmlのような図です。
データは円筒座標系になっていて、今、円筒座標を直交座標に変換し物理量の配列と結びつけることはできています。
現状できていること
動系方向のベクトルの要素を、data_r
方位角方向のベクトルの要素を、data_theta
鉛直方向のベクトルの要素を、data_z
という3次元配列でそれぞれ出力されます。
そして、座標の一次元配列をr,theta,zとして出力されています。
python
1 theta_matrix, z_matrix, radius_matrix = np.meshgrid(theta, z, r) 2 x = radius_matrix * np.cos(theta_matrix) 3 y = radius_matrix * np.sin(theta_matrix) 4 z = z_matrix 5 u =data_r*np.cos(theta_matrix)-data_theta*np.sin(theta_matrix) 6 v =data_r*np.sin(theta_matrix)+data_theta*np.cos(theta_matrix) 7 w =data3[:,:,:]
このように位置(x,y,z)とそこのベクトル(u,v,w)を結びつけることはできています。
また、これを3次元のベクトル図にすることもできています。
python
1fig = plt.figure() 2ax = fig.gca(projection='3d') 3ax.set_xlabel("X") 4ax.set_ylabel("Y") 5ax.set_zlabel("Z") 6ax.quiver(x[::10,:,::5], y[::10,:,::5], z[::10,:,::5], u[::10,:,::5], v[::10,:,::5], w[::10,:,::5], length=1, normalize=True) 7plt.show()
試したこと
plotlyを使うと良いらしく試してみたのですがうまく使えませんでした。ソースコードでcsvファイルになっているところをどう自分の場合に落とし込めば良いのかがわかりませんでした。
補足情報(FW/ツールのバージョンなど)
python3.7.5
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。