Matlab - 基于数据的绘图和颜色样本

时间:2016-05-09 08:49:42

标签: matlab matrix plot colormap

我有以下数据:

  • dataMatrix(20x210):20个样本,每个样本有210个变量
  • 波长:描述波长数的一行210个变量
  • 浓度:每个样品的浓度值(20行和1列)

我通常以正常方式绘制数据:

plot(wavelength, dataMatrix)

但我想要的是根据浓度值对每个样品进行绘图和着色,同时考虑其余部分,基于数据的颜色。我认为这与colormap有关。结果将是这样的:

使用Matlab有没有简单的方法呢?

非常感谢!

1 个答案:

答案 0 :(得分:0)

plot接受包含线条颜色的线属性,例如

plot(wavelength, dataMatrix, 'Color', [0,0,0.1])

colormap可以将内置颜色贴图转换为RGB矩阵,例如

nlines = length(concentrations);
cmap = hsv(nlines)

将浓度映射到颜色可以像对数字进行排序一样简单

c = concentrations - min(concentrations);
c = ceil( c/max(c)*nlines );

最后,分别绘制每一行

for ii = 1:nlines
    plot(wavelength, dataMatrix(ii,:), 'Color', cmap(c(ii),:))
    hold on
end
hold off