2017-07-12 44 views

回答

4

這確實是一個令人困惑的問題。

在英語中,單數是軸,複數是軸。兩個軸形成兩個軸。

在matplotlib中,matplotlib.axes._axes.Axes對象通常簡稱爲「軸」。這個對象包含一個xaxis和一個yaxis,因此名字。但是談到這個對象,人們會把它稱爲單數軸。其中有幾個仍然被稱爲軸。

每個子圖都是一個座標軸,但有一些座標軸,它們沒有子座標圖。例如通過子繪圖機制創建的軸是matplotlib.axes._subplots.AxesSubplot。這個類來自matplotlib.axes._axes.Axes,因此這個子圖是一個座標軸。然而,您也可以通過不同的機制創建軸線,例如,通過在圖中添加一個軸,fig.add_axes()。這將不是一個子圖,而是一個座標軸,matplotlib.axes._axes.Axes

import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 

print(ax)   # Axes(0.125,0.11;0.775x0.77) 
print(type(ax)) # <class 'matplotlib.axes._subplots.AxesSubplot'> 

ax2 = fig.add_axes([0.8,0.1,0.05,0.8]) 

print(ax2)  # Axes(0.8,0.1;0.05x0.8) 
print(type(ax2)) # <class 'matplotlib.axes._axes.Axes'> 

還有其他的軸,例如,插入軸, mpl_toolkits.axes_grid1.parasite_axes.AxesHostAxes。這個對象也被稱爲座標軸。

from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes 
axins = zoomed_inset_axes(ax, 0.2, loc=3) 

print(axins)  # Axes(0.125,0.11;0.775x0.77)  
print(type(axins)) # <class 'mpl_toolkits.axes_grid1.parasite_axes.AxesHostAxes'> 
+0

你能解釋一下更多關於名字「軸」背後的想法嗎?根據[這裏](https://stackoverflow.com/a/33263181)中的圖,座標軸似乎像繪圖區或浮動畫布,而不僅僅是x和y軸。我想知道爲什麼這個對象被命名爲「軸」,如果它真的意味着一個繪圖區域。謝謝! – xslittlegrass

+0

@xslittlegrass matplotlib中的「軸」實際上是'matplotlib.axes._axes.Axes'對象,它包含了x軸,y軸,它們的標籤,刻度等等。畫布就是一切;它可以託管一個數字,一個數字可以託管多個軸。我們不會談論繪圖區域,因爲您可以在任何地方繪製繪圖區域,也可以在繪製區域外繪製。 – ImportanceOfBeingErnest

2

軸是軸的複數。甲副區通常具有X - 軸ý - 軸,它們一起形成兩個軸插曲的

讓我們在函數/類名詞術語講:

Figure.add_subplotpyplot.subplot返回AxesSubplot對象。這又包含XAxisYAxis對象。

fig = plt.figure() 
ax = fig.add_subplot(111) 
x = ax.xaxis 

print(type(ax)) # matplotlib.axes._subplots.AxesSubplot 
print(type(x)) # matplotlib.axis.XAxis 

XAxis源自基類AxisAxesSubplot源自SubplotBaseAxes