解决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解析xml文件操作实例
Oct 05 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
python中set()函数简介及实例解析
Jan 09 Python
使用python语言,比较两个字符串是否相同的实例
Jun 29 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
在Python中COM口的调用方法
Jul 03 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
django 实现简单的插入视频
Apr 07 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
详解Pycharm第三方库的安装及使用方法
Dec 29 Python
Python实现简繁体转换
Jun 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使用socket post数据到其它web服务器的方法
2015/06/02 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
2008/08/14 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
vue的mixins属性详解
2018/03/14 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
python学习之matplotlib绘制散点图实例
2017/12/09 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
高一化学教学反思
2014/02/05 职场文书
早会主持词
2014/03/17 职场文书
超市理货员岗位职责
2014/07/04 职场文书
大连星海广场导游词
2015/02/10 职场文书
2019年幼儿园家长接送责任书
2019/10/29 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python