将数组以彩色图片的形式展现
2023-12-20 13:02:55
plt.imshow可以将数组的值以图片的形式展示出来,数组的值对应着不同的颜色深浅。比如一个2X2的数组,图片里的小方块也会有2X2个。
案例1结果:
案例1代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([[1, 2, 3, 4],
[5, 6, 7, 8]])
plt.imshow(x, cmap='RdBu')
cb = plt.colorbar(label='color bar settings')
plt.show()
案例2结果:
由于研究需要,生成了12通道27*27的tiff数据,想要可视化各个通道:
案例2代码:
import tifffile
import matplotlib.pyplot as plt
import numpy as np
path = '-40_40528165_4108935_128266.tiff'
sample = tifffile.imread(path) # (27,27,12)
sample_new = np.transpose(sample, (2, 0, 1)) # (12,27,27)
title = ['dF','waF','wbF','gF','fV','qxyz','SIG1','SSI','VS','Tx','Ty','Tz']
# 定义子图的行数和列数
rows = 3
cols = 4
# 创建一个新的图像窗口,并设置子图的排列方式
fig, axes = plt.subplots(rows, cols, figsize=(10, 8))
# 遍历每个通道的数据,并在相应的子图中绘制
for i, ax in enumerate(axes.flat):
# 获取当前通道的数据
channel_data = sample_new[i, :, :]
# 绘制当前通道的图像
ax.imshow(channel_data, cmap='RdBu',interpolation='bicubic')# camp是色彩映射,bilinear'双线性插值来平滑图像,减少小方块的边界显示。若要更平滑的效果,可尝试使用 'bicubic' 插值。
ax.axis('off') #不显示坐标轴
ax.set_title(title[i],y=-0.12) #设置子标题,y=-0.12的作用是将标题放于下方
# 调整子图之间的间距
plt.tight_layout()
# 显示图像
plt.show()
文章来源:https://blog.csdn.net/qq_46458188/article/details/135094089
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!