fig,ax = plt.subplots() 中ax参数的理解与实例

#ax参数的理解与实例

根据原网址翻译
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html

matplotlib.pyplot.subplots(nrows = 1,ncols = 1,sharex = False,sharey = False,squeeze = True,subplot_kw = None,gridspec_kw = None, fig_kw )**

该实用程序包装器使您可以在一次调用中方便地创建子图的通用布局,包括封闭的图形对象。

参数:

nrows,ncols

int,可选,默认值:1
子图网格的行数/列数。

sharex,sharey : 布尔或{‘none’,‘all’,‘row’,‘col’},默认值:False
控制x(sharex)或y(sharey)轴之间的属性共享:

真实或“全部”:x或y轴将在所有子图中共享。
错误或“无”:每个子图的x轴或y轴将是独立的。
‘行’:每个子图行将共享一个x轴或y轴。
‘col’:每个子图列将共享一个x轴或y轴。
当子图沿列具有共享的x轴时,仅创建底部子图的x刻度标签。类似地,当子图沿行具有共享的y轴时,仅创建第一列子图的y刻度标签。若要稍后打开其他子图的刻度标签,请使用tick_params。

squeeze

布尔值,可选,默认值:True
如果为True,则从返回的数组中挤出额外的尺寸Axes:

如果仅构造一个子图(nrows = ncols = 1),则返回的单个Axes对象将作为标量返回。
对于Nx1或1xM子图,返回的对象是Axes对象的1D numpy对象数组。
对于NxM,将N> 1和M> 1的子图作为2D数组返回。
如果为False,则完全不进行压缩:返回的Axes对象始终是包含Axes实例的2D数组,即使最终它是1x1。

num

整数或字符串,可选,默认值:无
一pyplot.figure,设置图号或标记关键字。

subplot_kw

字典,可选
具有传递给add_subplot用于创建每个子图的调用的关键字的字典 。

fig_kw

所有其他关键字参数都传递给 pyplot.figure调用。

ax

: axes.Axes对象或Axes对象数组。
Axes如果创建了多个子图,则ax可以是单个对象,也可以是一组轴对象。可以使用squeeze关键字控制结果数组的尺寸,请参见上文。


返回值

fig: matplotlib.figure.Figure 对象
ax:子图对象( matplotlib.axes.Axes)或者是他的数组


下面举个栗子

这里应用的是kaggle竞赛集中,泰坦尼克号的train数据。

在这里插入代码片

import matplotlib.pyplot as plt
import seaborn as sns

seaborn 是一种matplotlib的Python数据可视化库。这里给出它的官网地址。

http://seaborn.pydata.org/

fig, ax = plt.subplots(2, 4, figsize = (18, 8))
sns.violinplot("Pclass", "Age", hue="Survived", data=train_data, split=True, ax=ax[0,1])
ax[0,0].set_title('Pclass and Age vs Survived')

这里画的是小提琴图
Pclass - 即仓位等级 所对应的列为 x轴数据‘

Age - 即年龄 所对应的列为y轴数据

这里ax作为定位使用 如图:

**我之前设置了2行4列形式的子图,这里我在行编号为0,列编号为1的位置绘制该图形。

也就是将ax[0,1] 作为参数传给ax

并且在行编号为0,列编号为0 的位置添加标题**
fig,ax = plt.subplots() 中ax参数的理解与实例_第1张图片
‘’
‘’
‘’
‘’
同样,我在其他位置绘制图形,添加标题和刻度

sns.violinplot("Sex", "Age", hue="Survived", data=train_data, split=True, ax=ax[0,2])
ax[0,2].set_title('Sex and Age vs Survived')
ax[0,3].set_yticks(range(0, 110, 10))
plt.show()

fig,ax = plt.subplots() 中ax参数的理解与实例_第2张图片
‘’
‘’
‘’
‘’
到这里大家就能很轻易的看出ax[ ] 是如何使用的了。。

你可能感兴趣的:(matplotlib)