python:
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()
cmap配色
matlab:
myArray = randi([-10, 10], 27, 27); % 生成一个随机的27x27数组,假设值在-10到10之间
imagesc(myArray); % 使用imagesc函数展示数组
colormap('hsv'); % 将颜色设置为hsv调色板
colorbar; % 显示颜色条