Документация
Управляйте как цвета выбора функций построения графика и стили линии
Когда вы строите несколько наборов данных вместе в тех же осях, MATLAB ® автоматически присваивает различные цвета (и возможно стили линии и маркеры) к объектам графика. Можно настроить цвета, стили линии и маркеры, когда вы вызываете функцию построения графика, и можно также установить свойства после вызывания функции.
Например, постройте твердую красную линию и пунктирную зеленую линию. Затем добавьте квадратные маркеры в красную линию и круговые маркеры к зеленой линии.
p1 = plot([0 1 2 3],'-r'); hold on p2 = plot([1 2 3 4],'--g'); hold off % Add markers p1.Marker = 'sq'; p2.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];
Документация
MATLAB ® создает графики с помощью набора по умолчанию цветов. Цвета по умолчанию обеспечивают чистый и сопоставимый взгляд через различные графики, которые вы создаете. Можно настроить цвета, если вы должны. Много функций построения графика имеют входной параметр, такой как c или colorspec для настройки цвета. Объекты, возвращенные этими функциями обычно, имеют свойства для управления цветом. Имена аргументов и свойств могут варьироваться, но значения, которые они принимают обычно, следуют за общим шаблоном. Если вы знакомы с шаблоном, можно использовать его, чтобы изменить большое разнообразие графиков.
Следующие примеры используют bar и scatter функции, чтобы продемонстрировать общий подход для настройки цветов. Для полного списка допустимых значений цвета для определенной функции построения графика обратитесь к документации для этой функции.
Типы значений цвета
Существуют эти типы значений цвета:
- Название цвета или Краткое название — Задают имя цвета, такого как ‘red’ или ‘green’ . Краткие названия задают букву с названия цвета, такого как ‘r’ или ‘g’ .
- Триплет RGB — Создает пользовательский цвет путем определения трехэлементного вектора-строки, элементами которого является интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1] . Например, можно задать оттенок розового как [1 0.5 0.8] . Аргументы функции, которые управляют цветом, не всегда поддерживают триплеты RGB, но свойства объектов, которые управляют цветом обычно, делают.
- Шестнадцатеричный Цветовой код ( Начиная с R2019a ) — Создает пользовательский цвет путем определения вектора символов или строкового скаляра, который запускается с символа хеша ( # ) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F . Значения не являются чувствительными к регистру. Таким образом, цветовые коды ‘#FF8800’ , ‘#ff8800’ , ‘#F80’ , и ‘#f80’ все задают тот же оттенок оранжевого. Аргументы функции, которые управляют цветом, обычно не поддерживают шестнадцатеричные цветовые коды, но свойства объектов, которые управляют цветом обычно, делают.
Эта таблица приводит все допустимые названия цвета и краткие названия с соответствующими триплетами RGB и шестнадцатеричными цветовыми кодами.
Как сделать цветные линии и маркеры в функции ezplot?
Функция ezplot возвращает объект типа Line , представляющий нарисованный график. Если у этого объекта поменять свойство Color , цвет линии поменяется:
h1= ezplot ('2*x^3 - 3*x^2 + 5', [-5 5]); h1.Color= 'Green'; hold on h2= ezplot ('x^3/(x^2-1)', [0 3]); h2.Color= [0.3 0.2 0.5];
Отслеживать
ответ дан 13 фев 2020 в 5:22
525 7 7 серебряных знаков 16 16 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Графики

Для построения графиков табличных функций используется функция plot.
x = 0:0.05:5; y = sin(10*x)+2*x;
Третьим аргументом функции plot можно передать строковую константу, описывающую свойства графика: цвет, тип маркера и тип линии:
plot(x,y,'r--'); plot(x,y,'k-.','LineWidth',2); % размер шрифта и толщина линий шкал set(gca,'FontSize',14,'LineWidth',1.5); % подписи осей с указанием размеров шрифтов xlabel('x, c','FontSize',14); ylabel('y, м','FontSize',14); grid on;
Некоторые коды цветов, маркеров и типов линий приведены в таблице
Для создания рисунка определенного размера можно использовать функцию figure с параметром position, который позволяет задать положение нижней левой точки окна рисунка и его ширину и высоту
x0 = 10; y0 = 10; width = 500; height = 300; figure('position',[x0, y0, width, height]); x = 0:0.5:5; y = sin(x); plot(x,y);
Размер рисунка можно изменить после его построения, задав свойство position при помощи функции изменения свойств текущего рисунка set(gcf, ….)
x = 0:0.5:5; y = sin(x); plot(x,y); x0 = 10; y0 = 10; width = 500; height = 300; set(gcf,'Position',[x0, y0, width, height]);
gcf это глобальная переменная-ссылка на выбранный объект figure.
Несколько графиков на одном рисунке
По умолчанию при нескольких вызовах функции plot на графике будет показана только последняя кривая, поскольку вызов функции plot удаляет предыдущий график. Чтобы изменить это поведение и показать на одном графике несколько кривых, необходимо использовать директиву hold on.
x = 0:0.1:10; y1 = sin(x); y2 = cos(x); plot(x, y1 , 'r-'); % "Удерживаем" предыдущий график hold on; % строим еще одну кривую (синим пунктиром) plot(x, y2, 'b--'); % Выключаем "удержание" hold off;

На одном рисунке можно показать несколько графиков мозаикой. Для этого используется функция subplot. Предположим, что необходимо построить 4 графика.
Разбиваем рисунок на 4 ячейки 2×2 и строим график в первой ячейке (1,1)
subplot(2,2,1); x = linspace(0,2*pi,50); y1 = sin(x); plot(x, y1,'r-','LineWidth',2)
Двигаемся справа налево, сверху вниз: первые два аргумента – число строк и столбцов, на которое разбит рисунок, третий аргумент – номер ячейки в котором будет строиться следующий график. Порядок нумерации ячеек не такой как у матрицы, а слева-направо и сверху-вниз.
subplot(2,2,2); y2 = cos(x); plot(x, y2,'g-','LineWidth',2);
Аналогично для оставшихся графиков во второй строке рисунка
subplot(2,2,3); y3 = exp(x); plot(x, y3,'b-','LineWidth',2); subplot(2,2,4); y4 = x.^2+2*x; plot(x, y3,'y-','LineWidth',2);

Столбчатые диаграммы
x = 0:0.5:5; y = sin(x); bar(x,y)

Круговые диаграммы
x = [1, 2, 3, 4]; pie (x);

Второй аргумент – логический массив, указывающий на необходимость изображения соответствующего сектора отдельно от круговой диаграммы.
x = [1, 2, 3, 4]; y = [0, 0, 1, 0]; pie (x);
Если сумма элементов массива данных больше или равна единице, то эта сумма принимается за 100%, в противном случае строится диаграмма с пропущенным сектором.
x = [0.1 , 0.2 , 0.5]; pie(x);

© 2023. All rights reserved.