PyTorch与matplotlib结合:多图拼接与子图显示实战
本文主要介绍了如何使用PyTorch和matplotlib库将多张图像拼接成一张图像,并且探讨了在matplotlib中使用subplot和subplots的区别。以FashionMNIST数据集为例,展示了两种紧凑画出子图的方法。 在PyTorch中紧凑画出子图: 1. 在一行里画出多张图像和对应标签 为了在一个行中展示多张FashionMNIST图像及其对应的标签,可以使用matplotlib的`pyplot`模块。以下是一段示例代码: ```python import matplotlib.pyplot as plt import numpy as np import torchvision import torchvision.transforms as transforms mnist_train = torchvision.datasets.FashionMNIST(root='./data', train=True, download=True, transform=transforms.ToTensor()) mnist_test = torchvision.datasets.FashionMNIST(root='./data', train=False, download=True, transform=transforms.ToTensor()) # 其他辅助函数略... ``` 代码中首先导入了必要的库并加载了FashionMNIST数据集。接下来,可以编写一个函数来绘制图像和标签,比如`show_fashion_mnist`,这个函数会使用`plt.imshow`将每张图像转换为合适的格式并显示。 2. 以矩阵的形式展示多张图片 除了在一行中展示图像,还可以选择以矩阵形式展示。这可以通过调整`plt.subplot`参数实现,例如设置行列数来组织图像。代码示例如下: ```python num_rows, num_cols = 2, 3 fig, axes = plt.subplots(num_rows, num_cols, figsize=(6, 3)) for i in range(num_rows): for j in range(num_cols): img, label = mnist_train[i * num_cols + j][0], mnist_train[i * num_cols + j][1] axes[i, j].imshow(img.squeeze(), cmap='gray') axes[i, j].set_title(get_fashion_mnist_labels([label])[0]) axes[i, j].axis('off') plt.tight_layout() plt.show() ``` 这里使用`subplots`创建了一个包含2行3列的图像网格,然后遍历数据集中的部分样本,将它们显示在对应的子图上。 在matplotlib中紧凑画出子图: 1. 区分`subplot`和`subplots` `subplot`是创建单个子图的函数,而`subplots`则用于创建多个子图的网格。`subplot`通过参数指定子图的位置,如`subplot(2, 3, 1)`表示创建2行3列中的第一个子图。`subplots`则返回一个figure对象和一个axes数组,可以更方便地处理多子图布局。 2. 示例代码和效果展示 使用`subplots`的代码如下: ```python fig, axes = plt.subplots(2, 3, sharex=True, sharey=True, figsize=(6, 3)) for i in range(2): for j in range(3): img, label = mnist_train[i * 3 + j][0], mnist_train[i * 3 + j][1] axes[i, j].imshow(img.squeeze(), cmap='gray') axes[i, j].set_title(get_fashion_mnist_labels([label])[0]) axes[i, j].axis('off') plt.tight_layout() plt.show() ``` 这段代码创建了一个2行3列的子图网格,所有子图都共享x轴和y轴,使得图像对齐更整齐。`tight_layout`函数用来自动调整子图间的间距,以避免重叠。 通过上述方法,我们可以有效地将多张图像拼接在一起展示,无论是单行多列还是矩阵形式,都能清晰地呈现FashionMNIST数据集中的图像,并且可以利用matplotlib的`subplot`和`subplots`功能进行灵活布局。
![](https://csdnimg.cn/release/download_crawler_static/14853340/bg1.jpg)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 1
- 资源: 909
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)