exponenta event banner

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 с возвращаемым аргументом, чтобы получить объект axes для второй плитки. Постройте график из трех строк во втором фрагменте. Затем получить матрицу порядка цветов для осей и вернуть выходные данные в 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

Целевой объект, указанный как одно из следующих значений:

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

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

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

Подробнее

свернуть все

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

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

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

Совет

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

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

См. также

Функции

Свойства

Представлен в R2019b