Python subplots函数绘图中标题重叠怎么办
Admin 2022-06-13 群英技术资讯 651 次浏览
先上图
使用plt.subplots(2,2)绘图时,子图的标题和上图重叠,影响观感:
源代码:
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.
参数:
参考官方文档: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测试结果:
方法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测试结果:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
前言:这个先来创建一个模块,名称为christmastree,在该模块中,首先定义一个全局变量,然后创建一个名称为fun_christmastree()的函数,最后再通过print()函数输出一写内容
使用python检索文件有什么方法?检索文件是比较常见的操作,python中可以用glob检索文件,操作并不困难,下面小编就给大家具体介绍一下python中glob检索文件的操作。
这篇文章主要介绍了Python 切片为什么不会索引越界?切片(slice)是 Python 中一种很有特色的特性,在正式开始之前,我们先来从关于切片的相关知识开始介绍,感兴趣的小伙伴一起参考参考呀</P><P>
写文章的时候有时需要matlab导出清晰的图片,如果直接用figure里面的保存的话不够清晰,下面这篇文章主要给大家介绍了关于如何从Matlab中导出清晰的结果图片的相关资料,需要的朋友可以参考下
对于Python新手来说,理解python内存分配机制是很有必要的。本文就给大家分享一下实例帮助大家更好的理解python内存分配机制,下面就跟随小编一起来看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008