解决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 相关文章推荐
小米5s微信跳一跳小程序python源码
Jan 08 Python
python如何重载模块实例解析
Jan 25 Python
基于python神经卷积网络的人脸识别
May 24 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
基于Python实现用户管理系统
Feb 26 Python
python django model联合主键的例子
Aug 06 Python
python防止随意修改类属性的实现方法
Aug 21 Python
基于python plotly交互式图表大全
Dec 07 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 Python
Python读取二进制文件代码方法解析
Jun 22 Python
Django使用django-simple-captcha做验证码的实现示例
Jan 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
理解和运用PHP中的多态性[译]
2011/08/02 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
共享自己写一个框架DreamScript
2007/01/20 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
python多线程之事件Event的使用详解
2018/04/27 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
服装创业计划书范文
2014/02/05 职场文书
党支部对照检查材料
2014/08/25 职场文书
网络研修心得体会
2016/01/08 职场文书
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python