цветные точки на графике Matlab

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

 scatter(pc(1,:),pc(2,:),15,c,'filled')

c - это массив 1x40, где записаны числа для каждой точки. У меня получаются только разноцветные точки, но не от синего до красного. Может ли кто-нибудь помочь мне, пожалуйста?


person user2080209    schedule 30.04.2015    source источник
comment
Что именно находится в c ? Это массив 40x3, который вы создали сами? Как насчет использования c = jet(40) для цветов?   -  person Benoit_11    schedule 30.04.2015
comment
вы можете ввести colormap(jet(40)) после инструкции по разбросу, но решение @Benoit_11 тоже должно работать.   -  person Hoki    schedule 30.04.2015
comment
О, я вижу, что на самом деле это массив 1x40... ну и что в нем?   -  person Benoit_11    schedule 30.04.2015


Ответы (1)


Ваш аргумент c является вектором, если он равен 1x40. Согласно справке по функции SCATTER:

Если C является вектором той же длины, что и X и Y, значения в C линейно сопоставляются с цветами в текущей палитре.

Это означает, что цвета, которые вы видите, зависят от вашей палитры.

Если вам нужно, чтобы каждый маркер был определенного цвета, вы можете воспользоваться этим поведением:

Когда C представляет собой матрицу длины (X) на 3, она напрямую определяет цвета маркеров как значения RGB.

person siliconwafer    schedule 30.04.2015