解决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根据出生日期获得年龄的方法
Mar 31 Python
python模拟enum枚举类型的方法小结
Apr 30 Python
实例讲解Python的函数闭包使用中应注意的问题
Jun 20 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
Django卸载之后重新安装的方法
Mar 15 Python
深入探究Django中的Session与Cookie
Jul 30 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
Python日志模块logging基本用法分析
Aug 23 Python
Python爬虫基础之爬虫的分类知识总结
May 13 Python
Pytorch中expand()的使用(扩展某个维度)
Jul 15 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
德生PL550的电路分析
2021/03/02 无线电
第十二节 类的自动加载 [12]
2006/10/09 PHP
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
简单了解python变量的作用域
2019/07/30 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
公司营业员的工作总结自我评价
2013/10/05 职场文书
协议书格式
2014/04/23 职场文书
表扬稿格式范文
2015/01/16 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js
Ajax异步刷新功能及简单案例
2021/11/20 Javascript