Настройка ColorOrder не имеет никакого эффекта

Я использую Matlab версии R2014a и пытаюсь получитьplot похож на прицел Simulink. Мой код работает как надо, кромеColorOrder настройка не отражается на выходе.

Сразу после установкиColorOrder Я нашел это сcurrent_co=get(gca, 'ColorOrder'); и это возвращает значение, которое я установил. Однако на диаграмме используются цвета по умолчанию.

Почему это? Как это можно исправить?

my_co=[1.0 1.0 0.0; 1.0 0.0 1.0; 0.0 1.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 1.0 1.0];
figure('Color', [0.2 0.2 0.2]);
plot(ScopeData(:,2:6));
legend('w(t)','e(t)','y(t)','x(t)','z(t)');
set(gca, 'ColorOrder', my_co);
set(gca, 'Color', 'black');
set(gca, 'XColor', 'white');
set(gca, 'YColor', 'white');
set(gca, 'XGrid', 'on');
set(gca, 'YGrid', 'on');
title('My funky title!', 'Color', 'white');
xlabel('t/[s]');
 ptmartin14 июн. 2016 г., 13:02
@ АндерБигури, я не понимаю. Моя выглядит так:http://imgur.com/Yj2y3Qy, Я мог бы использоватьplot(x,y1,color1, x,y2,color2, ...) которыйделает соблюдать цвета.
 Ander Biguri14 июн. 2016 г., 12:21
Что вы имеете в виду? Я получаю сюжет с цветами, которые определенно не по умолчанию. Черный фон, белая ось. Я получаю это:imgur.com/MO3V5jC но при этом сохраняется экономия, поэтому белый цвет является черным, и ось может быть видна
 Ander Biguri14 июн. 2016 г., 13:44
да, это выглядит так. В чем проблема тогда? Вы знаете, что у нас есть ваши данные, поэтому мы не знаем, является ли порядок цветов точным ..............
 Suever14 июн. 2016 г., 14:26
@AnderBiguri Это цвета графика по умолчанию для 2014b +.

Ответы на вопрос(1)

Решение Вопроса

Вы должны установитьColorOrder имуществодо замышляя что-нибудь. Объекты участка уважаютток значениеColorOrder свойство, когда они создаются и меняютColorOrder после они создаются только влияет на будущие сюжеты.Также обратите внимание, что вам нужно позвонитьhold on до заговора, чтобы предотвратитьaxes вернуться к дефолтуColorOrder.

my_co = [1 1 0; 1 0 1; 0 1 1; 1 0 0; 0 1 0; 0 0 1; 1 1 1];
figure('Color', [0.2 0.2 0.2]);

% Set thi,s before plotting anything
set(gca, 'ColorOrder', my_co);
hold on

% NOW plot your data
plot(ScopeData(:,2:6));
legend('w(t)','e(t)','y(t)','x(t)','z(t)');
set(gca, 'ColorOrder', my_co);
set(gca, 'Color', 'black');
set(gca, 'XColor', 'white');
set(gca, 'YColor', 'white');
set(gca, 'XGrid', 'on');
set(gca, 'YGrid', 'on');
title('My funky title!', 'Color', 'white');
xlabel('t/[s]');

% If you want you can turn hold off now
hold off

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

plot(data, 'Color', 'magenta')

Вы не хотели бы, чтобы оси автоматически меняли этот ручной цвет, когдаColorOrder свойство изменено.

Ваш ответ на вопрос