MATLAB - цветовая кодировка сюжета - PullRequest
0 голосов
/ 08 марта 2012

Как я могу указать что-то вроде: если отображаемое значение <10, закрасьте его красным, если> 20, закрасьте синим, если оно между цветами, то черным?

Ответы [ 3 ]

3 голосов
/ 08 марта 2012

Простой пример:

x=1:0.1:30;
y=x;

hold on
plot(x(y<10), y(y<10),'o','color','red');
plot(x(y>20),y(y>20),'o','color','blue');

y (y <10) равно <a href="http://blogs.mathworks.com/steve/2008/01/28/logical-indexing/" rel="nofollow"> логическому индексированию и является ключом к этому.

0 голосов
/ 09 марта 2012

Если вы строите линию, я бы рекомендовал использовать color_line из MATLAB Central. Вам все равно нужно будет установить требуемую цветовую карту, но, используя этот метод, вы строите одну линию в соответствии со значением.

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

С color_line это будут разные цвета, но они будут обрабатываться как один элемент данных.

0 голосов
/ 09 марта 2012

Следующее будет работать, если вы строите поверхности.

set(gca, 'CLim', [0 30])
set(gcf, 'Colormap', [1 0 0; 0 0 0; 0 0 1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...