Когда вы строите несколько наборов данных вместе в тех же осях, 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