Matlab — образцы графиков и цветов на основе данных

У меня есть следующие данные:

  • dataMatrix (20x210): 20 выборок по 210 переменных в каждой
  • длина волны: 1 ряд из 210 переменных, описывающих номер длины волны
  • концентрации: значение концентрации для каждого образца (20 строк и 1 столбец)

Я обычно рисую данные обычным способом:

plot(wavelength, dataMatrix)

Но я хочу построить и раскрасить каждый образец в соответствии со значением концентрации с учетом остальных, цвет на основе данных. Я думаю, что это как-то связано с цветовой картой. Результат будет примерно таким:

Есть ли простой способ сделать это с помощью Matlab?

Большое спасибо!


person Eka    schedule 09.05.2016    source источник
comment
Хороший вопрос (у) такая же проблема здесь   -  person 16per9    schedule 09.05.2016
comment
Это может пригодиться: блоги .mathworks.com/pick/2008/08/15/   -  person BillBokeey    schedule 09.05.2016


Ответы (1)


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
person Yvon    schedule 09.05.2016