Как я могу указать что-то вроде: если значение на графике <10, раскрасьте его в красный цвет, если оно> 20, раскрасьте его в синий цвет, если оно находится между ними, раскрасьте его в черный цвет?
3 ответа
Простой пример:
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) - это логическая индексация, и ключ к этому.
Следующее будет работать, если вы рисуете поверхности.
set(gca, 'CLim', [0 30])
set(gcf, 'Colormap', [1 0 0; 0 0 0; 0 0 1])
Если вы рисуете линию, я бы рекомендовал использовать color_line из MATLAB Central. Вам все равно нужно будет установить требуемую цветовую карту, но, используя этот метод, вы рисуете одну линию, окрашенную в соответствии со значением.
Единственный недостаток использования логической индексации для разделения данных заключается в том, что при построении графика они рассматриваются как отдельные блоки данных. Многие инструменты построения графиков будут работать только с одним набором данных, поместите легенду, и вы получите по одному элементу для каждого набора данных.
С color_line это будут разные цвета, но они будут обрабатываться как один элемент данных.
Похожие вопросы
Новые вопросы
matlab
MATLAB - это высокоуровневая языковая и интерактивная среда программирования для численных расчетов и визуализации, разработанная MathWorks. Не используйте оба тега [matlab] и [octave], если явно не задан вопрос о сходстве или различии между ними. При использовании этого тега, пожалуйста, укажите версию MATLAB, с которой вы работаете (например, R2017a).