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

Aiv*_*var 8 matplotlib

你能否澄清一些Matplotlib术语:

  • "子图"(或"子图"?)是"轴"的同义词吗?
  • 什么是单轴/复数的"轴"和"轴"?

Imp*_*est 10

这确实是一件令人困惑的事情.

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

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

每个子图都是一个Axes对象,但有些Axes对象,它们都不是AxesSubplot对象.例如,通过子图机制创建的轴是a 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'>
Run Code Online (Sandbox Code Playgroud)

还有其他轴,例如插入轴 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'>
Run Code Online (Sandbox Code Playgroud)

  • @ImportanceOfBeingErnest,这是一个很好的答案.但是你认为如果写成**每个`subplot`对象是一个`axes`对象,可以更好地理解强调的行,但是有'axes`对象,它们不是'subplot`对象**. (2认同)