解决python绘图使用subplots出现标题重叠的问题


Posted in Python onApril 30, 2021

先上图

解决python绘图使用subplots出现标题重叠的问题

遇到的问题

使用plt.subplots(2,2)绘图时,子图的标题和上图重叠,影响观感:

解决python绘图使用subplots出现标题重叠的问题

源代码:

import numpy as np
from scipy import signal
from skimage import data
from matplotlib import pyplot as plt

# 定义二维灰度图像的空间滤波函数
def correl2d(img, window):
	# 使用滤波器实现图像的空间相关
	# mode = 'same'表示输出尺寸等于输入尺寸
	# boundary = 'fill'表示滤波前,用常量值填充原始图像的边缘,默认常量值为0
	s = signal.correlate2d(img, window, mode='same', boundary='fill')
	return s.astype(np.uint8)
# img为原始图像
img = data.camera()
# 3*3盒状滤波模板
window_1 = np.ones((3, 3))/(3 ** 2)
# 5*5盒状滤波模板
window_2 = np.ones((5, 5))/(5 ** 2)
# 9*9盒状滤波模板
window_3 = np.ones((9, 9))/(9 ** 2)
# 生成滤波结果
new_img_1 = correl2d(img, window_1)
new_img_2 = correl2d(img, window_2)
new_img_3 = correl2d(img, window_3)
# 显示图像
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文
fig, axs = plt.subplots(2, 2)
axs[0, 0].imshow(img, cmap='gray')
axs[0, 0].set_title("摄影师原图")
axs[0, 1].imshow(new_img_1, cmap='gray')
axs[0, 1].set_title("3*3盒状滤波模板")
axs[1, 0].imshow(new_img_2, cmap='gray')
axs[1, 0].set_title("5*5盒状滤波模板")
axs[1, 1].imshow(new_img_3, cmap='gray')
axs[1, 1].set_title("9*9盒状滤波模板")
plt.show()

解决方法

方法1:在plt.show() 之前添加一句:

plt.tight_layout()

函数原型:

matplotlib.pyplot.tight_layout(*, pad=1.08, h_pad=None, w_pad=None, rect=None)

作用:调整subplots子图见的间距

Adjust the padding between and around subplots.

参数:

解决python绘图使用subplots出现标题重叠的问题

参考官方文档:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.tight_layout.html#matplotlib.pyplot.tight_layout

部分代码:

# 显示图像
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文
fig, axs = plt.subplots(2, 2)
axs[0, 0].imshow(img, cmap='gray')
axs[0, 0].set_title("摄影师原图")
axs[0, 1].imshow(new_img_1, cmap='gray')
axs[0, 1].set_title("3*3盒状滤波模板")
axs[1, 0].imshow(new_img_2, cmap='gray')
axs[1, 0].set_title("5*5盒状滤波模板")
axs[1, 1].imshow(new_img_3, cmap='gray')
axs[1, 1].set_title("9*9盒状滤波模板")
plt.tight_layout()
plt.show()

方法1测试结果:

解决python绘图使用subplots出现标题重叠的问题

方法2:在subplots中设置figsize

fig, axs = plt.subplots(2, 2,figsize=(6, 15))
# 显示图像
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文
# 设置figsize,防止图片重叠
fig, axs = plt.subplots(2, 2,figsize=(6, 15))
axs[0, 0].imshow(img, cmap='gray')
axs[0, 0].set_title("摄影师原图")
axs[0, 1].imshow(new_img_1, cmap='gray')
axs[0, 1].set_title("3*3盒状滤波模板")
axs[1, 0].imshow(new_img_2, cmap='gray')
axs[1, 0].set_title("5*5盒状滤波模板")
axs[1, 1].imshow(new_img_3, cmap='gray')
axs[1, 1].set_title("9*9盒状滤波模板")

方法2测试结果:

解决python绘图使用subplots出现标题重叠的问题

参考

[1]https://blog.csdn.net/txh3093/article/details/106401484

到此这篇关于python绘图使用subplots出现标题重叠的解决方法的文章就介绍到这了,更多相关python使用subplots绘图标题重叠内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
Python字典操作简明总结
Apr 13 Python
简单解决Python文件中文编码问题
Nov 22 Python
OpenCV实现人脸识别
Apr 07 Python
Python基于回溯法解决01背包问题实例
Dec 06 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
Python建立Map写Excel表实例解析
Jan 17 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
深入浅析python的第三方库pandas
Feb 13 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
Django中使用Celery的方法步骤
Dec 07 Python
python数据库批量插入数据的实现(executemany的使用)
Apr 30 #Python
Python如何把不同类型数据的json序列化
Apr 30 #Python
python实现三次密码验证的示例
Django一小时写出账号密码管理系统
python中的被动信息搜集
Apr 29 #Python
Python基础之元类详解
Apr 29 #Python
教你怎么用Python监控愉客行车程
You might like
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
在python中只选取列表中某一纵列的方法
2018/11/28 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
python查看数据类型的方法
2019/10/12 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
python 将Excel转Word的示例
2021/03/02 Python
美发店5.1活动方案
2014/01/24 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
创先争优活动承诺书
2014/08/30 职场文书
收款授权委托书
2014/10/02 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
客户答谢会致辞
2015/07/30 职场文书
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android