2016-07-27 33 views
0

私はmatplotlibの中の3Dプロット作る場合:Matplotlib 3d plot:過剰な空白を取り除く方法を教えてください。

from mpl_toolkits.mplot3d import Axes3D 
fig = plt.figure() 
ax = fig.gca(projection='3d') 

x_labels = [10,20,30] 
x = [1,2,3,4] 
y = [3,1,5,1] 
legend = False 

for label in x_labels: 
    x_3d = label*np.ones_like(x) 
    ax.plot(x_3d, x, y, color='black', label='GMM') 
    if legend == False: 
     ax.legend() 
     legend = True 

ax.set_zlabel('test') 

をそれが生成されます。

enter image description here

左側には、過度のホワイトスペースを持っています。私はそれを取り除くことが可能かどうかを知りたいですか?

+0

あなたは軸の内側または図内の軸にプロットを参照してくださいか? – Aguy

+1

プロットをクリックしてマウスを動かすと、プロットも移動します。 x軸上を90度回転させると、zラベルとzティックが反対側になります。余分な空白がこれに対応すると仮定します。 – DavidG

+0

@Aguyの左端の数字は「10」で、その左側の空白と黒い背景の間にあります。 – cqcn1991

答えて

2

これは遅すぎるかもしれませんが、私は同様の問題に遭遇しました。白いスペースを取り除いたのは、fig.subplot_adjust()を使って通常の領域の外側に置くことです。あなたの場合、私はfig.subplot_adjust(left=-0.11)が妥当な結果を与えることを発見しました。以下

全コード:

from mpl_toolkits.mplot3d import Axes3D 
fig = plt.figure() 
ax = fig.gca(projection='3d') 

x_labels = [10,20,30] 
x = [1,2,3,4] 
y = [3,1,5,1] 
legend = False 

for label in x_labels: 
    x_3d = label*np.ones_like(x) 
    ax.plot(x_3d, x, y, color='black', label='GMM') 
    if legend == False: 
     ax.legend() 
     legend = True 

ax.set_zlabel('test') 

fig.tight_layout() 
fig.subplots_adjust(left=-0.11) # plot outside the normal area 

enter image description here

関連する問題