matplotlibで3Dプロットを作成したいと思います。
データは次のとおりです。各行に3DプロットのY座標を含む行列があります。各行の最初の要素は、3DプロットのX座標です。最後に、2番目のマトリックスには、X、Y位置の各ポイントの高値が含まれています。したがって、この2番目のマトリックスには私のZ座標が含まれています。両方の行列は、Pythonを使用した配列の配列です。以下を取得するためにデータを変換する方法を知りたいです:
- このように、Xに対応する各1d信号のプロット(写真はオンラインで入手可能)
- このような同じデータのワイヤーフレームプロット
ワイヤーフレーム作業用のヘルパー関数を作成しました。
######## HELPER FOR PLOT 3-D
def plot_3d(name,X,Y,Z):
fig = plt.figure(name)
ax = fig.gca(projection='3d')
X = np.array(X)
Y = np.array(Y)
Z = np.array(Z)
ax.plot_wireframe(X,Y,Z,rstride=10,cstride=10)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
plt.show()
しかし、データX、Y、Zを変換して、X、Y、Zの2Dリストが必要なmatplotlib関数の要件に合うようにする方法がわかりません。
最初のグラフについては、ヘルプを読み、3Dで2Dプロットを使用したいと思います。ソースコードの例は次のとおりです。
x = np.linspace(0, 1, 100)
y = np.sin(x * 2 * np.pi) / 2 + 0.5
ax.plot(x, y, zs=0, zdir='z', label='zs=0, zdir=z')
ここで、zは定数座標です。私の場合、xは定数座標です。私は適応します
fig = plt.figure('2d profiles')
ax = fig.gca(projection='3d')
for i in range(10):
x = pt ## this is a scalar
y = np.array(y)
z = np.array(z)
ax.plot(xs = x, y, z, xdir='x')
plt.show()
しかし、警告があります:non-keyword arg after keyword arg
。直し方?
ありがとう、よろしく