2016-09-08 22 views
1

This question解釋瞭如何通過指定仰角和方位角來更改matplotlib中3D圖的「相機位置」。例如,ax.view_init(elev=10,azim=20)在不使用鼠標的情況下縮放內聯3D matplotlib圖形*

是否有類似的方式來指定圖中數字的zoom - 即不使用鼠標?

唯一相關的問題,我能找到爲this one,但接受的答案了包括安裝另一個庫,然後還需要使用鼠標進行放大。

編輯:

只是要清楚,我不是在談論(使用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

相關問題