首页编程开发Matplotlib【数据可视化(Matplo...

【数据可视化(Matplotlib篇)】20.子图布局函数add_gridspec()

本系列文章配套代码获取有以下两种途径:

  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/1jG-rGG4QMuZu0t0kEEl7SA?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Data_Visualization





add_gridspec()函数通过在创建的画布(Figure对象)上创建网格的方式进行子图布局,该方式可以让子图变得简单,容易理解。
01

函数语法


该函数语法如下:
add_gridspec(nrows,ncols,left,right,top,bottom,hspace,wspace)
各参数意义如下:
  • nrows,ncols:网格的行数和列数,如果只有一个数字,则此数字代表行数。
  • left,right,top,bottomgridspec网格占据图表的空间,单位是图表百分比。
  • wspace,hspacegridspec各子图间的距离。

此方法返回GridSpec,一般配合 subplot() 函数使用 ,作为其参数。
fig = plt.figure()
# 返回GridSpe
gs = fig.add_gridspec(2,2) # 创建2*2子图
02

子图配置实例


  • 实例1——等分子图布局样式
实现等分的子图布局样式有两种方法:
  • 使用add_subplot()函数逐个添加 axes:

例如,创建2*2的子图布局:

fig = plt.figure()
# 返回GridSpe
gs = fig.add_gridspec(2,2) # 创建2*2子图

ax1 = fig.add_subplot(gs[0,0]) # 逐个添加 axes ,是 matplotlib 最初的工作方式
ax2 = fig.add_subplot(gs[0,1])
ax3 = fig.add_subplot(gs[1,0])
ax4 = fig.add_subplot(gs[1,1])

plt.show()
可视化效果如下图所示:

  • 使用subplots()函数一次性添加多个子图:
例如,创建2*3的子图布局:
fig = plt.figure()
# 返回GridSpe
gs = fig.add_gridspec(2,3) # 创建2*3子图

ax = gs.subplots() # 一次性添加多个子图,并且子图呈网格状排布

plt.show()
可视化效果如下图所示:

  • 实例2——非等分子图布局样式

例如,创建如下所示的子图布局:

运用切片模式,可以实现上图所示的这种非等分的布局样式。
代码如下所示:
fig = plt.figure()
# 返回GridSpe
gs = fig.add_gridspec(3,3) # 创建3*3子图

ax1 = fig.add_subplot(gs[0:2,0:2]) # 切片模式
ax2 = fig.add_subplot(gs[0,2])
ax3 = fig.add_subplot(gs[1,2])
ax4 = fig.add_subplot(gs[2,0])
ax4 = fig.add_subplot(gs[2,1:]) # 切片模式

plt.show()
可视化效果如下图所示:




更多内容可以前往官网查看

https://matplotlib.org/stable/


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments