2013-10-18 71 views
5

我試圖繪製三維散與matplotlib 的問題是,我無法改變標誌的大小 我有這個Matplotlib散射標記大小

scat = plt.scatter([boid_.pos[0] for boid_ in flock], 
       [boid_.pos[1] for boid_ in flock], [boid_.pos[2] for boid_ in flock], marker='o', s=5) 

但我得到的錯誤

TypeError: scatter() got multiple values for keyword argument 's' 

沒有這一點,情節工作正常。哪裏有問題?還是有另一種方法來改變大小?

回答

8

這個函數在有兩個參數的關鍵字ARGS前:

scatter(x, y, s=20, ...)

而且你逝去的三個,所以你指定s兩次(一次暗示和明確的一次)。

其實,我認爲你正在嘗試使用二維散點圖功能而不是三維散點圖功能。你可能想這樣做:

from mpl_toolkits.mplot3d import Axes3D 
Axes3D.scatter(...) 
+0

也許我應該寫在我的文章,但我有'fig = plt.figure()'和'ax = Axes3D(fig)''之前。我仍然有一個錯誤,如果我使用Axes3D.scatter:'TypeError:必須調用Axes3D實例作爲第一個參數(取代列表實例)的非綁定方法scatter()' –

+1

對不起,我想通了, ax = fig.add_subplot(111,projection ='3d')'然後是'ax.scatter()',我不會再犯錯了。你的回答讓我意識到,也許我的分散體出了問題。謝謝你的幫助 –