python - 在python中水平绘制三个图像
问题描述
我正在尝试绘制三个带有字幕的图像,但现在没有显示任何内容。
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('kids.tif')
# Averaged environment
avg_blur = cv2.blur(img,(5,5))
# Gaussian filter
gauss_blur = cv2.GaussianBlur(img,(0,0),5)
# Median filter
median_blur = cv2.medianBlur(img,5)
f, axarr = plt.subplots(nrows=1,ncols=3)
axarr[0].imshow(img)
axarr[1].imshow(avg_blur)
axarr[2].imshow(gauss_blur)
"""
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(avg_blur),plt.title('Averaged environment')
plt.xticks([]), plt.yticks([])
plt.show()
"""
解决方案
解决方案
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg' # 'svg', 'retina'
plt.style.use('seaborn-white')
# Make dummy data for the image
a = np.arange(25**2).reshape(25,25)
# Show subplots | shape: (1,3)
fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(12,4))
for i, ax in enumerate(axs.flatten()):
plt.sca(ax)
plt.imshow(a**(i+1), cmap=plt.cm.jet)
#plt.colorbar()
plt.title('Image: {}'.format(i+1))
#plt.tight_layout()
plt.suptitle('Overall Title')
plt.show()
与您的实现类似的代码
只设置当前轴plt.sca(ax)
然后绘制就好像你只有一个子图要处理一样更容易。这使您的代码易于修改,如果需要,可以快速进入循环。
f, axarr = plt.subplots(nrows=1,ncols=3)
plt.sca(axarr[0]);
plt.imshow(img); plt.title('title 1')
plt.sca(axarr[1]);
plt.imshow(avg_blur); plt.title('title 2')
plt.sca(axarr[2]);
plt.imshow(gauss_blur); plt.title('title 3')
plt.show()
参考
推荐阅读
- jquery - 如何将 Carousel click 和 Swipe 绑定到同一个功能?
- spring-kafka - 使用 Embedded Kafka 测试 Kafka Streams 应用程序
- javascript - 仅当我运行 webpack --watch 时出现“ReferenceError:文档未定义”?
- wysiwyg - 在使用 SummerNote 编辑器的“插入图像”时,我可以在我的服务器上对目录进行硬编码以插入图像吗
- python - Django:: 无法更新表单
- python - 为什么合并的文件会比其输入文件少一行?
- wordpress - 将 woocommerce 结帐字段设为只读
- python - 在 3d 线上为给定 z 插入 xy 值的最快方法
- laravel - 请求通过但不更新数据库
- xquery - 在 VSC 中打开 MarkLogic API Doc 上下文相关帮助