1
我想繪製3D圖中的多條線。每行代表一個月:我希望它們在y方向上平行顯示。Matplotlib:多個3D線都使用我的循環中的最終y值繪製
我的計劃是循環使用一組Y值,但是我無法使其正常工作,因爲使用ax.plot命令(請參見下面的工作代碼)會在最終Y的位置產生一打行值。令人困惑的是,交換ax.plot for ax.scatter does會產生一組平行的數據(雖然以一組點的形式; ax.view_init設置爲最好地顯示結果的並行方面)。
如何使用多條平行線生成一個繪圖? 我目前的解決方法是用十幾個不同數組的Y值代替循環,而不能是正確的答案。
from mpl_toolkits.mplot3d.axes3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
# preamble
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
cs = ['r','g','b','y','r','g','b','y','r','g','b','y']
# x axis
X = np.arange(24)
# y axis
y = np.array([15,45,75,105,135,165,195,225,255,285,315,345])
Y = np.zeros(24)
# data - plotted against z axis
Z = np.random.rand(24)
# populate figure
for step in range(0,12):
Y[:] = y[step]
# ax.plot(X,Y,Z, color=cs[step])
ax.scatter(X,Y,Z, color=cs[step])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
# set initial view of plot
ax.view_init(elev=80., azim=345.)
plt.show()
我還在學習python,所以我非常感謝這麼簡單的解決方案(或者最好有很多解釋性註釋的解決方案)。
哇 - 一個非常簡單的解決方案(實際上是兩個!) - 非常感謝你,這是完美的。 – RChapman