2016-09-08 11 views
1

This questionは、標高と方位角を指定して、matplotlibの3Dプロットの「カメラ位置」を変更する方法を説明しています。例えば、ax.view_init(elev=10,azim=20)である。マウスを使用せずに、インライン3D matplotlib figure *をズームしますか?

図の数字はズームを指定する同様の方法がありますか?

唯一の関連する質問はthis oneですが、それに受け入れられる回答には別のライブラリをインストールする必要があります。このライブラリにはズームするためにマウスを使用する必要があります。

EDIT:

だけ明確にするために、私は(fig.set_size_inches()または類似を使用して)フィギュアのサイズを変更する話ではありません。図形のサイズは問題ありません。

image

答えて

2

view_initに最も近いソリューションは直接ax.dist設定されています。問題は、プロットされたもののみが図の小さな部分を占めるということです。 get_projのドキュメントによれば、distは、視点のオブジェクトポイントからの距離である。 initial value is currently hardcodeddist = 10です。値が小さいほど(0より大きい)、プロットが拡大されます。

:この動作は実際には文書化されておらず、変更される可能性があります。軸の限界を変更して関連する部品だけをプロットすることは、ほとんどの場合、おそらくより良い解決策です。これを便利に行うにはax.autoscale(tight=True)を使用できます。

ワーキングIPython/Jupyter例:

%matplotlib inline 
from IPython.display import display 
from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 

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

# Grab some test data. 
X, Y, Z = axes3d.get_test_data(0.05) 

# Plot a basic wireframe. 
ax.view_init(90, 0) 
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) 
plt.close() 

from ipywidgets import interact 

@interact(dist=(1, 20, 1)) 
def update(dist=10): 
    ax.dist = dist 
    display(fig) 

出力

dist = 10

image for dist = 10

dist = 5

image for dist = 5

関連する問題