2012-05-31 17 views
3

我無法在matplotlib中完成繪圖。下面是代碼:matplotlib z方向

arrays_k, arrays_v = splitbyrecordcount(ycsb[2]) 
checktype = [ "Update", "Read", "Verification" ] 

fig = plt.figure() 
ax = fig.add_subplot('111', projection='3d') 

for z in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: 
    xs = arrays_k[z] 
    ys = arrays_v[z] 
    c = colmap.spectral(z/10.,1) 
    ax.plot(xs, ys, zs=z, zdir='z', color=c) 

它產生這樣的:

Correct but wrong way round

我希望時間的曲線圖,你會如何期待:「在飛機上」的畫面更而非某種「垂直「,如上圖所示。我已經試過很多的ax.plot()部分的不同組合,但如果我把它改爲:

ax.plot(xs, ys, zs=z, zdir='y', color=c) 

我得到這個:

what

將其更改爲:

ax.plot(xs, ys, zs=z, zdir='x', color=c) 

...也沒有幫助。它只是在原點沿z方向製作了一個細條。

任何想法?即使有人知道只是旋轉整個圖形的方式,所以地塊在屏幕的平面上總比沒有好。

回答

4

沒有數據檢查我相信問題是ax.plot的參數的順序。試試這個:

ax.plot(xs, z * np.ones(xs.shape), zs=ys, zdir='z', color=c) 

所以,你想要什麼會成爲你的「Y」軸在2D情節是高度,因此zs=ys

+0

傑出。這解決了它。這是我18個小時的論文。你是我的英雄! <3 – eggonlegs

+0

很高興幫助!祝你的論文好運! – jorgeca