解决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 相关文章推荐
Python 返回汉字的汉语拼音
Feb 27 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
python制作简单五子棋游戏
Jun 18 Python
Django框架安装方法图文详解
Nov 04 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
使用python绘制分组对比柱状图
Apr 21 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
php实现统计邮件大小的方法
2013/08/06 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
vue.js 微信支付前端代码分享
2018/02/10 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
Python验证码识别的方法
2015/07/10 Python
使用python实现接口的方法
2017/07/07 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
django删除表重建的实现方法
2019/08/28 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
任命书模板
2014/06/04 职场文书
信访维稳承诺书
2015/05/04 职场文书
学前教育见习总结
2015/06/23 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
python绘制云雨图raincloud plot
2022/08/05 Python
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技