解决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编写爬虫的基本模块及框架使用指南
Jan 20 Python
python的else子句使用指南
Feb 27 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
Jun 30 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
Python类的继承super相关原理解析
Oct 22 Python
如何基于matlab相机标定导出xml文件
Nov 02 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 之入门篇
2006/12/04 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
使用iojs的jsdom库实现同步系统时间
2015/04/20 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
vue的mixins属性详解
2018/03/14 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
Python面向对象程序设计示例小结
2019/01/30 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
2014年工程工作总结
2014/11/25 职场文书
物流业务员岗位职责
2015/04/03 职场文书
高中班长竞选稿
2015/11/20 职场文书
详解nginx进程锁的实现
2021/06/14 Servers
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS