1

Python で 3D プロットに複数の線をプロットしたいと思います。私の入力は、3D ポイント (行 = x、y、z 座標) の 2 つのリストに対応する、pos1 と pos2 などの 2 つの nx 3 配列で構成されます。i ごとに、pos1 の i 番目の点と pos2 の i 番目の点を結ぶ線をプロットする必要があります。

私は動作するコードを持っていますが、それはひどいものであり、これを実装するためのより良い方法があると確信しています.

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

# get plot set up
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')

# minimal working example: two pairs.
pos1 = np.array([[0,0,0],[2,2,2]])
pos2 = np.array([[1,1,1],[3,3,3]])

xvals = np.transpose(np.array([pos1[:,0], pos2[:,0]]))
yvals = np.transpose(np.array([pos1[:,1], pos2[:,1]]))
zvals = np.transpose(([pos1[:,2], pos2[:,2]]))

N = len(pos1)

# call plot on each line
for i in range(N):
    ax.plot(xvals[i],yvals[i],zvals[i])

plt.show()

具体的には、3 つの中間配列を定義する必要はないと思いますxvals, yvals, zvals。これに代わるよりクリーンな方法はありますか?たとえば、にリストを渡す必要がありますか?plot

4

1 に答える 1