Когда вы строите несколько наборов данных вместе в тех же осях, MATLAB® автоматически присваивает различные цвета (и возможно стили линии и маркеры) к объектам графика. Можно настроить цвета, стили линии и маркеры, когда вы вызываете функции построения графика.
Например, этот код строит твердую красную линию и пунктирную зеленую линию с круговыми маркерами.
plot([0 1 2],'-r') hold on plot([2 1 0],'--og') hold off
Можно также изменить цвет, стиль линии и маркер путем установки свойств на объекте после создания его. Например, этот код создает линию и затем изменяет ее в зеленую пунктирную линию с круговыми маркерами.
p = plot([0 1 2]); p.Color = 'g'; p.LineStyle = '--'; p.Marker = 'o';
Эти методы полезны для настройки всего нескольких линий. Однако они менее гибки в других ситуациях, таковы как отображение на графике данных в цикле или передающих матричных данных к функциям построения графика. В таких случаях можно изменить свойства, которые управляют, как MATLAB автоматически присваивает цвета, стили линии и маркеры.
Примечание
Часть функциональности в следующих примерах является доступным запуском в R2019b, и часть функциональности является доступным запуском в R2020a. Чтобы изменить цвета графика и стили линии в более раннем релизе, смотрите Почему графики разных цветов? и Стили линии, Используемые для Графического вывода — LineStyleOrder.
MATLAB присваивает цвета, чтобы построить объекты (такие как Lineрассеяние, и Bar объекты) путем циклического повторения через цвета перечислен в ColorOrder свойство осей. ColorOrder свойство содержит массив триплетов RGB, где каждый триплет RGB задает цвет. ColorOrder по умолчанию массив содержит семь цветов. Если вы создаете больше объектов, чем существуют цвета, повторение цветов.
Если объекты графика поддерживают стили линии и маркеры, MATLAB также циклы через список в LineStyleOrder свойство осей. LineStyleOrder свойство содержит массив ячеек последовательностей символов, где каждая последовательность символов соответствует стилю линии (или стилю линии, объединенному с маркером). LineStyleOrder по умолчанию массив содержит только стиль сплошной линии, ('-'). Все цвета в ColorOrder массив используется с одной последовательностью символов в LineStyleOrder массив перед следующей последовательностью используется. Цикл продолжается для каждого нового объекта графика. Если существует больше объектов, чем комбинации цветов и последовательностей символов, то цикл повторяется.
Для данной пары ColorOrder и LineStyleOrder массивы, цвета, стили линии и маркеры для конкретного объекта графика определяются значением SeriesIndex объекта, который является новым свойством, запускающимся в R2020a. По умолчанию, SeriesIndex свойство является номером, который соответствует порядку объекта создания, запускающегося в 1. MATLAB использует номер, чтобы вычислить индексы в ColorOrder и LineStyleOrder массивы.
Например, создайте объект осей с два, раскрашивает его ColorOrder массив (красный и синий) и два стиля линии в его LineStyleOrder массив (тело и подчеркнутый штриховой линией). Затем постройте пять графиков.
ax = axes;
ax.ColorOrder = [1 0 0; 0 0 1];
ax.LineStyleOrder = {'-','--'};
hold on
for i = 1:5
plot([i i+2])
end
hold off
Эта таблица приводит SeriesIndex, индекс в ColorOrder массив и индекс в LineStyleOrder массив для каждой линии в предыдущем графике.
SeriesIndex | Индексируйте в ColorOrder Массив | Индексируйте в LineStyleOrder Массив | Внешний вид линии | |
|---|---|---|---|---|
| Первая линия | 1 | 1 | 1 | Красная сплошная линия |
| Вторая линия | 2 | 2 | 1 | Синяя сплошная линия |
| Третья линия | 3 | 1 | 2 | Красная пунктирная линия |
| Четвертая линия | 4 | 2 | 2 | Синяя пунктирная линия |
| Пятая линия | 5 | 1 | 1 | Красная сплошная линия |
Можно изменить цвета, стили линии и маркеры объектов графика путем изменения ColorOrder или LineStyleOrder свойства осей, или путем изменения SeriesIndex свойства объектов графика.
Изменение ColorOrder свойство осей изменяет цветовую схему вашего графика. Изменение LineStyleOrder свойство осей изменяет стили линии (и возможно маркеры) используемый в вашем графике. Например, постройте восемь графиков в цикле с помощью цветов по умолчанию и стиля линии.
ax = axes; hold on for i = 0:7 plot([i i+2]) end hold off

Замените ColorOrder массив с новым массивом, который содержит четыре цвета (можно также заменить этот массив с помощью colororder функция. Затем замените LineStyleOrder массив с новым массивом ячеек, который содержит два стиля линии. Линии автоматически используют новые цвета и стили линии.
% Updates existing plots in R2019b or later ax.ColorOrder = [1 0 0; 0 1 0; 0 0 1; 0 0 0]; ax.LineStyleOrder = {'-','--'};

ColorOrder и LineStyleOrder МассивыИзменение SeriesIndex свойство на объекте графика изменяет индексы в ColorOrder и LineStyleOrder массивы. Изменение индексов полезно, когда это необходимо, цвет, стиль линии и маркер объекта совпадать с другим объектом.
Например, постройте четыре синусоиды в цикле, варьируясь длина волны и фаза. Для каждой синусоиды, набор SeriesIndex свойство согласно длине волны. В получившемся графике синусоиды, которые имеют ту же длину волны также, имеют тот же цвет.
x = linspace(0,10,200); ax = axes; hold on for phi = 0:3:3 for t = 1:2 plot(x,sin(x/t + phi),'SeriesIndex',t) % Requires R2020a or later end end hold off

Чтобы сделать одну пару синусоид более видной, измените последовательность цветов в различный набор цветов.
ax.ColorOrder = [0.8 0.8 0.9; 0.2 0.2 0.8];

colororder | gca | plot