2011-07-14 6 views
0

私はちょうどPythonを学び始めていますが、最近matplotlibを使って私のデータセットで3D散布図を作ろうとしていました。データが非常に広がっているので(x range =(1〜20000))、X軸の制限を適用してx <のデータポイントだけを表示しようとしましたが、軸の限界を設定しようとすると、プロット上でx = 1000より大きい点。なぜそれがそれをやっているのか分かりませんし、インターネット上で私の検索で答えを見つけることができませんでした:(matplotlib scatter3Dで軸を強制した後に外向きのデータポイントがまだプロットされていますか?

これは私がしたことの単純化された例です...私は、 2軸の範囲は、私はまだ見ポイント(3,3,3)は、なぜそれがこれをやっていると私は間違って何をやっている。プロットされている?

は事前にどうもありがとうございました!!!!


from matplotlib.figure import Figure 
from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 

fig = plt.figure() 
ax = fig.gca(projection='3d') 

xs = [1,2,3,5,11] 
ys = [1,2,3,4,5] 
zs = [1,2,3,4,5] 

ax.scatter3D(xs, ys, zs, c="blue") 

ax.set_xlim3d([0,2]) 
ax.set_ylim3d([0,5]) 
ax.set_zlim3d([0,5]) 

ax.set_xlabel('X') 
ax.set_ylabel('Y') 
ax.set_zlabel('Z') 

plt.show() 

答えて

1

以下は、私のためにうまくいきます。set_xlim3dコールにマイナーバグがありました。here m鉱石の文書。

from matplotlib.figure import Figure 
from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 

fig = plt.figure() 
ax = Axes3D(fig) 

xs = [1,2,3,5,11] 
ys = [1,2,3,4,5] 
zs = [1,2,3,4,5] 

ax.scatter(xs, ys, zs, c="blue") 

ax.set_xlim3d(0,2) 
ax.set_ylim3d(0,5) 
ax.set_zlim3d(0,5) 

ax.set_xlabel('X') 
ax.set_ylabel('Y') 
ax.set_zlabel('Z') 
plt.show() 
関連する問題