【Matplotlib】子图布局

Matplotlib进阶教程:布局讲解

自定义图形布局

可以创建axes的网格状组合的方法:

1)subplots()

用于创建图形和axes的主要函数。它类似于 matplotlib.pyplot.subplot(),但会同时创建并放置图形上的所有axes。

2)GridSpec

指定将放置子图的网格几何形状。要设置网格的行数和列数,也可调整子图的布局参数(如left、right等)。

3)SubplotSpec

在给定的 GridSpec 中指定子图的位置。

4)subplot2grid()

实例1:

gridspec 的强大之处在于能够创建跨行和列的子图。注意用于选择每个子图将占据的gridspec部分的 Numpy 切片语法。

我们也可以使用 Figure.add_gridspec方法创建不同宽度的子图:

python 复制代码
import matplotlib.pyplot as plt
 
fig3 = plt.figure(constrained_layout=True)
gs = fig3.add_gridspec(3, 3)
f3_ax1 = fig3.add_subplot(gs[0, :])
f3_ax1.set_title('gs[0, :]')
f3_ax2 = fig3.add_subplot(gs[1, :-1])
f3_ax2.set_title('gs[1, :-1]')
f3_ax3 = fig3.add_subplot(gs[1:, -1])
f3_ax3.set_title('gs[1:, -1]')
f3_ax4 = fig3.add_subplot(gs[-1, 0])
f3_ax4.set_title('gs[-1, 0]')
f3_ax5 = fig3.add_subplot(gs[-1, -2])
f3_ax5.set_title('gs[-1, -2]')
 
plt.show()

效果:

这里add_gridspec(3, 3)表示划分整个布局为3*3
gs[0,:]表示所占据的子图网格为第一行,
gs[-1,0]即最后一行,第一列
gs[1:,-1]表示第二行到最后一行,最后一列

实例2:

python 复制代码
fig = plt.figure(figsize=(12, 12), constrained_layout=True)
gs = fig.add_gridspec(8, 8)

imgs = generated_images[-1].reshape(8, 8, 28, 28)
for n_row in range(8):
    for n_col in range(8):
        f_ax = fig.add_subplot(gs[n_row, n_col])   

效果:

这里add_gridspec(8, 8)表示划分整个布局为8*8

两个for循环依次遍历行和列,则子图将整个布局填满。

相关推荐
紫雾凌寒19 小时前
解锁机器学习核心算法 | 逻辑回归:不是回归的“回归”
python·深度学习·算法·机器学习·逻辑回归·scikit-learn·matplotlib
lihuayong4 天前
计算机视觉中图像的基础认知
人工智能·opencv·计算机视觉·matplotlib·图像基本属性·rgb 三通道彩色·单通道灰度图像
大数据魔法师4 天前
Python数据可视化 - Matplotlib教程
python·matplotlib
WANGWUSAN668 天前
Python教程:使用Matplotlib模块画柱状图、饼形图、直方图
开发语言·经验分享·python·程序人生·matplotlib·数据可视化
XYX的Blog9 天前
Matplotlib基础01( 基本绘图函数/多图布局/图形嵌套/绘图属性)
matplotlib
一名技术极客17 天前
Python 数据分析 - Matplotlib 绘图
python·数据分析·matplotlib
SteveKenny18 天前
Python 梯度下降法(四):Adadelta Optimize
开发语言·python·深度学习·机器学习·numpy·matplotlib
aiweker20 天前
Python Matplotlib库:从入门到精通
开发语言·python·matplotlib
dreadp21 天前
网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践
python·html·github·matplotlib·数据可视化·wordcloud
YiSLWLL25 天前
Tauri2+Leptos开发桌面应用--绘制图形、制作GIF动画和mp4视频
python·rust·ffmpeg·音视频·matplotlib