Matplotlib子图与轴对轴(单数/复数)

时间:2017-07-12 04:07:18

标签: matplotlib

请您澄清一些Matplotlib术语:

  • 是" subplots" (或" subplot"?)与#34;轴同义?"?
  • 什么是单数/复数的"轴"和"轴"?

3 个答案:

答案 0 :(得分:9)

这确实是一个令人困惑的问题。

在英语中,单数是轴,复数是轴。两种轴形成两个轴。

在matplotlib中,matplotlib.axes._axes.Axes对象通常简称为“轴”。该对象包含xaxis和yaxis,因此得名。但是谈到那个对象,人们会把它称为单数轴。其中一些仍被称为轴。

每个子图都是Axes个对象,但有Axes个对象,它们不是AxesSubplot个对象。例如。通过子图机制创建的轴是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'>

答案 1 :(得分:3)

轴是轴的复数。子图通常具有 x -axis y -axis ,它们共同形成 2

的子轴

让我们谈谈功能/类名:

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

答案 2 :(得分:1)

Axes 只是轴的复数形式。例如,x 轴和 y 轴一起可以称为 2 轴或仅称为轴。大多数情况下,子图包含轴。一个图包含许多子图。

                      Figure
                        |
                        v
                ------------------
                |                |
                v                v
             Subplot1         Subplot2
                |                |
                v                v
               Axes             Axes
                |                |
                v                v
            ---------        -----------
            |       |        |         |
            v       v        v         v
          Axis1   Axis2    Axis1     Axis2