当前位置:首页 » 《随便一记》 » 正文

Python matplotlib 设置多子图、子图间距、外边距

15 人参与  2024年02月12日 12:36  分类 : 《随便一记》  评论

点击全文阅读


Python matplotlib
设置多子图
设置多子图纵向间距
设置多子图横向间距
设置外边距


1. 方式一。设置一个 2*2 的相同尺寸子图,统一添加。

可选参数:sharex=True,sharey=False 共享X轴,不共享Y轴。可选参数:facecolor 背景填充色。figsize 图片的大小。
import matplotlib.pyplot as pltfig,axes = plt.subplots(2,2,figsize=(6,6),dpi=100,facecolor="w",sharex=True,sharey=False)# 遍历所有子图for i,ax in enumerate(axes.flatten()):    ax.text(0.5, 0.5, i, fontdict={'fontsize':20,})    # 对单一子图进行操作    axes[0,0].set_title('0,0 title')

在这里插入图片描述


2. 方式二。设置一个 2*2 子图,单独添加尺寸相同的子图。

add_subplot 先创建 fig 再单独添加子图。
import matplotlib.pyplot as pltfig = plt.figure(figsize=(6,6),dpi=100,facecolor="w")ax1 = fig.add_subplot(2,2,1)ax4 = fig.add_subplot(2,2,4)ax1.text(0.3, 0.5, '2,2,1', fontdict={'fontsize':20,})ax4.set_title('2,2,4 title')  

在这里插入图片描述


3. 方式三。单独设置尺寸不太的子图。

subplot2grid 单独设置子图所占的行列比例。

import matplotlib.pyplot as pltfig = plt.figure(figsize=(8,8),dpi=100,facecolor="w")# 3*3 的网格;(0,0)位置开始,跨度为 1 行 1 列ax1 = plt.subplot2grid((3,3),(0,0),colspan=1,rowspan=1)# 3*3 的网格;(1,0)位置开始,跨度为 1 行 2 列ax2 = plt.subplot2grid((3,3),(1,0),colspan=2,rowspan=1)# 3*3 的网格;(1,2)位置开始,跨度为 2 行 1 列ax3 = plt.subplot2grid((3,3),(1,2),colspan=1,rowspan=2)ax1.text(0.1, 0.5, '(0,0) rows 1, cols 1', fontdict={'fontsize':12,})ax2.text(0.3, 0.5, '(1,0) rows 1, cols 2', fontdict={'fontsize':12,})ax3.text(0.1, 0.5, '(1,2) rows 2, cols 1', fontdict={'fontsize':12,})

在这里插入图片描述

4. 子图间距调整、子图边距调整

subplots_adjust 调整间距。参数 left=0,right=1,top=1,bottom=0, 分别控制 上下左右 的位置。(整体边距)参数 wspace=0.4,hspace=0.1 分别控制横向和纵向的子图间距。(子图间距)
import matplotlib.pyplot as pltfig,axes = plt.subplots(2,2,figsize=(8,6),dpi=100,facecolor="#00CC67")# 遍历所有子图for i,ax in enumerate(axes.flatten()):    ax.text(0.5, 0.5, i, fontdict={'fontsize':20,})# left 控制左边位置;wspace,hspace 控制子图间距fig.subplots_adjust(left=0,right=1,top=1,bottom=0,                    wspace=0.4,hspace=0.1)

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/68236.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1