colororder

Установите порядок цвета для визуализации нескольких рядов данных

Описание

пример

colororder(newcolors) устанавливает порядок цвета для текущей фигуры. Если рисунок не существует, MATLAB® создает рисунок и устанавливает порядок цвета для этого рисунка. Когда вы устанавливаете порядок цвета для рисунка, вы устанавливаете порядок цвета для всех осей на этом рисунке.

пример

colororder(target,newcolors) устанавливает порядок цвета для целевых осей, рисунка или графика вместо текущей фигуры.

C = colororder возвращает матрицу порядка цвета для текущей фигуры.

пример

C = colororder(target) возвращает матрицу порядка цвета для целевого рисунка, осей или графика.

Примеры

свернуть все

Установите порядок цвета для рисунка равным четырем цветам. Задайте вектор с координатами X и четыре вектора с координатами Y. Затем постройте график каждого набора координат.

newcolors = [0.83 0.14 0.14
             1.00 0.54 0.00
             0.47 0.25 0.80
             0.25 0.80 0.54];
         
colororder(newcolors)

% Define coordinates
x = linspace(0,10);
y1 = sin(x);
y2 = sin(x-0.5);
y3 = sin(x-1);
y4 = sin(x-1.5);

% Plot coordinates
plot(x,y1,'LineWidth',2)
hold on
plot(x,y2,'LineWidth',2)
plot(x,y3,'LineWidth',2)
plot(x,y4,'LineWidth',2)
hold off

Figure contains an axes. The axes contains 4 objects of type line.

Постройте семь концентрических квартальных кругов.

hold on
for r=1:7
    x = linspace(0,r,500);
    y = sqrt(r.^2-x.^2);
    plot(x,y,'LineWidth',15)
end

Figure contains an axes. The axes contains 7 objects of type line.

Измените порядок цвета на семь шестнадцатеричных цветовых кодов.

newcolors = {'#F00','#F80','#FF0','#0B0','#00F','#50F','#A0F'};
colororder(newcolors)

Figure contains an axes. The axes contains 7 objects of type line.

Отображение трех серий полос. Затем установите порядок цвета синий, фиолетовый и серый.

bar([10 20 30; 25 35 45; 30 40 52])
newcolors = [0 0.5 1; 0.5 0 1; 0.7 0.7 0.7];
colororder(newcolors)

Figure contains an axes. The axes contains 3 objects of type bar.

Установка порядка цвета для рисунка перед вызовом yyaxis устанавливает цвет для каждой оси Y. Левая сторона использует первый цвет, правая - второй цвет. Если вы задаете более двух цветов, дополнительные цвета не используются ни одной из сторон.

Определите newcolors как матрица, содержащая два триплетов RGB. Установите порядок цвета для рисунка и постройте график двух линий относительно левой оси. Затем постройте график двух линий относительно правой оси.

newcolors = [0.40 0.30 0.90; 0.50 0.65 0.15];
colororder(newcolors)

% Left side
yyaxis left
plot([1 2; 3 4])

% Right side
yyaxis right
plot([4 3; 2 1])

Figure contains an axes. The axes contains 4 objects of type line.

Установка порядка цвета для рисунка после вызова yyaxis устанавливает цвет для активной стороны.

Активируйте левую ось Y и постройте график трех линий. Установите стиль линии порядка одну сплошную линию и измените цвет оси Y на синий. Затем установите порядок цвета в три оттенка синего цвета.

% Left side
yyaxis left
plot([1 2 3; 4 5 6])
ax = gca;
ax.LineStyleOrder = '-';
ax.YColor = 'blue';
leftcolors = [0 0 1; 0 0.50 1; 0 0.80 1];
colororder(leftcolors)

Figure contains an axes. The axes contains 3 objects of type line.

Активируйте правую ось Y и постройте график двух линий. Измените цвет оси Y на черный. Затем установите порядок цвета на черный.

% Right side
yyaxis right
plot([4 3; 2 1])
ax.YColor = 'black';
colororder('black')

Figure contains an axes. The axes contains 5 objects of type line.

Когда вы вызываете функцию построения графика с аргументом цвета, функция построения графика использует этот цвет вместо следующего цвета в порядке цвета.

Установите порядок цвета рисунка в красном, пурпурном и синем цветах. Вызовите scatter функция для построения ряда рассеянных точек. Затем постройте график второй серии точек и задайте маркеры как черные звездочки.

newcolors = {'red','magenta','blue'};
colororder(newcolors)
scatter(1:10,rand(1,10),'filled')
hold on
scatter(1:10,rand(1,10),'*k')

Figure contains an axes. The axes contains 2 objects of type scatter.

Постройте график третьей серии точек, не задавая цвет маркера. Заметьте, что эта серия использует третий цвет в порядке цвета, который является синим.

scatter(1:10,rand(1,10),'filled')
hold off

Figure contains an axes. The axes contains 3 objects of type scatter.

Создайте график размещения с мозаикой и постройте график трех линий в первой плитке.

tiledlayout('flow')
nexttile
plot([1 2 3; 4 5 6],'LineWidth',2)

Figure contains an axes. The axes contains 3 objects of type line.

Вызовите nexttile функция с возвращаемым аргументом для получения объекта осей для второго плитки. Постройте график трёх линий во второй плитке. Затем получите матрицу порядка цвета для осей и верните выход в C. Измените первый цвет в C фиолетовый, и установите порядок цвета осей на измененный C матрица.

ax = nexttile;
plot(ax,[4 5 6; 1 2 3],'LineWidth',2)
C = colororder(ax);
C(1,:) = [0.5 0 1];
colororder(ax,C)

Figure contains 2 axes. Axes 1 contains 3 objects of type line. Axes 2 contains 3 objects of type line.

Входные параметры

свернуть все

Новые цвета, заданные как матрица триплетов RGB, массив названий цвета или 'default'.

Матрица триплетов RGB

Задайте матрицу m на 3, где каждая строка является триплетом RGB. Триплет RGB является трехэлементным вектором, содержащим интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]. Для примера эта матрица определяет новые цвета как синий, темно-зеленый и оранжевый:

newcolors = [1.0 0.0 0.0
             0.0 0.4 0.0
             1.0 0.5 0.0];

Массив Названий цвета или шестнадцатеричных цветовых кодов

Задайте любую комбинацию названий цвета, кратких имен или шестнадцатеричных цветовых кодов.

  • Чтобы задать один цвет, задайте newcolors в вектор символов или строковый скаляр. Для примера, newcolors = 'red' задает красный цвет как единственный цвет в порядке цвета.

  • Чтобы задать несколько цветов, задайте newcolors в массив ячеек из векторов символов или строковые массивы. Для примера, newcolors = {'red','green','blue'} задает красный, зеленый и синий цвета.

Шестнадцатеричный код цвета начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

В этой таблице перечислены краткие имена и названия цвета, а также эквивалентные шестнадцатеричные коды цветов.

Название цветаКраткое имяШестнадцатеричный цветовой кодВнешность
'red''r''#FF0000'

'green''g''#00FF00'

'blue''b''#0000FF'

'cyan' 'c''#00FFFF'

'magenta''m''#FF00FF'

'yellow''y''#FFFF00'

'black''k''#000000'

'white''w''#FFFFFF'

Цвета по умолчанию

Задайте 'default' чтобы задать порядок цвета для семи цветов по умолчанию. Эта опция используется для сброса порядка цвета после того, как вы временно измените его. Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Типы данных: single | double | char | cell | string

Цель, заданная как одно из следующих значений:

  • A рисунка. Новые цвета влияют на содержимое всех осей на рисунке.

  • Любой тип объекта осей Axes, PolarAxes, или GeographicAxes объект. Новые цвета влияют только на содержимое заданных осей.

  • Автономная визуализация, созданная с stackedplot, scatterhistogram, parallelplot, или geobubble функция.

Подробнее о

свернуть все

Порядок цвета

Порядок цвета управляет набором цветов, которые MATLAB использует для графического изображения нескольких рядов данных в пределах осей. Графические объекты, такие как Line, Scatter, и Bar объектам присваиваются цвета в соответствии с порядком их создания.

Цвета хранятся как матрица в ColorOrder свойство осей. Вызов colororder функция заменяет матрицу.

Совет

  • Когда вы устанавливаете порядок цвета для рисунка, цвета сохраняются, когда вы вызываете функцию построения графика. Однако, если вы передаете объект осей в colororder функцию, сначала необходимо вызвать hold on чтобы сделать цвета сохраняются при вызове функции построения графика.

  • Если вы задаете ColorOrderIndex или LineStyleOrderIndex свойство на осях, новый порядок цвета не влияет на существующие графики. Новые цвета вступают в эффект только после вызова hold on а затем вызовите функцию построения графика.

См. также

Функции

Свойства

Введенный в R2019b