Как менять цвет графика в матлаб
Перейти к содержимому

Как менять цвет графика в матлаб

Документация

Управляйте как цвета выбора функций построения графика и стили линии

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

Plot containing five lines with two colors and two line styles.

Эта таблица приводит 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

Plot containing eight solid lines of with seven colors. The first color is repeated.

Замените 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 = '-','--'>;

Plot containing eight lines with four colors and two line styles.

Изменение индексов в 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

Plot containing two blue sine waves and two orange sine waves.

Чтобы сделать одну пару синусоид более видной, измените последовательность цветов в различный набор цветов.

ax.ColorOrder = [0.8 0.8 0.9; 0.2 0.2 0.8];

Некоторые полезные средства настройки графиков (plot) в MATLAB

Недавно, в очередной раз проверяя домашние работы своих студентов, я загорелся желанием автоматизировать этот процесс. Задание состояло в составлении рабочей таблицы девиации магнитного компаса и построения кривой девиации.

Входными данными служили показания магнитного компаса (МК), синхронно наблюдаемые показания гирокомпаса (ГК), поправка ГК и значение магнитного склонения для района, в котором проходили измерения.

Все данные были занесены в таблицу и разделены из 10 столбцов с входными данными и 25 строк – значений входных данных для каждого из вариантов. Для удобства считывания данных в MATLAB они были записаны в виде текстового файла и импортировались в рабочее пространство с помощью функции importdata.

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

Для построения графика была выбрана функция plot, имеющая большое количество параметров настройки, которые позволяют получить результат в нужном виде. Был составлен код:

%Построение графика Рабочей кривой девиации X=[0:10:360]; Y=SC; plot(X,Y,'bo-'); grid on; title('Рабочая кривая девиации'); xlabel('Компасный курс, \circ'); ylabel('Девиация, \circ'); axis auto xlim([0,360]) set(gca, 'XTick',0:45:360) 

И получен следующий график:

Разберем код построчно, рассмотрим какие параметры можно указывать для настройки отображения графиков.

X=[0:10:360]; Y=SC; 

Здесь задаются входные данные для построения графика. Количество значений по оси абсцисс и по оси ординат должно совпадать. По эти данные являются векторами с 36 значениями.

plot(X,Y,'bo-'); 

Собственно, функция построения графика, в которую передаются данные и параметры. Помимо очевидных входных данных параметром функции является тип отображаемой линии, закодированный трехсимвольным сочетанием. В данном случае “b” – blue, цвет линии; “o” – вид маркера, которым обозначаются точки графика и “-” – тип линии, в данном случае – сплошная.

Ниже привожу список параметров для настройки отображаемой линии.

Маркер Цвет линии
c голубой
m фиолетовый
y желтый
r красный
g зеленый
b синий
w белый
k черный

Маркер Тип линии
— непрерывная
— — штриховая
: пунктирная
-. штрих-пунктирная

Маркер Тип маркера
. точка
+ знак «плюс»
* знак «звездочка»
о круг
х знак «крест»

grid on; 

Команда, которой включается сетка на графике.

title('Рабочая кривая девиации'); xlabel('Компасный курс, \circ'); ylabel('Девиация, \circ'); 

Подписи для графика и соответствующих осей. Здесь “\circ” кодировка символа градуса.

axis auto 

Команда управления осями. В данном случае выставлен параметр “auto” – автоматическая расстановка осей. Здесь-то меня и не устроила работа MATLAB, т.к. автоматически оси не пристыковывались к крайним значениям графика, а «добавляли» лишнее пространство по оси “X”.

С помощью команды “help axis” я нашел еще несколько вариантов параметра для осей, в частности попробовал параметр “tight”, который должен был пристыковывать границы графика к крайним значениям кривой. Однако результат и этого параметра меня не удовлетворил т.к. результат выглядел следующим образом:

График выглядит «зажатым», к тому же «теряются» части кривой находящиеся между максимальными значениями.

Для получения наглядного результата пришлось настроить ось “X” отдельно с помощью следующих команд:

axis auto xlim([0,360]) 

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

И последняя команда:

set(gca, 'XTick',0:45:360) 

Позволила настроить подписи и шаг для оси “X”. Функция “set” является достаточно общей, ее работа зависит от передаваемых параметров. В данном случае “gca” – означает, что параметры будут устанавливаться для сетки графика, “ XTick ” – означает, что будет управляться подпись оси “X”, а параметр “0:45:360” – задает минимальное значение, шаг и максимальное значение.

В результате получился достаточно наглядный график кривой девиации, по сравнению формы которого с формой графика полученного студентом можно было быстро оценить правильность выполнения работы. Так же, благодаря загрузке данных из файла по всем вариантам, с дальнейшим выбором последнего, изменять приходилось только номер варианта, чтобы получить результат.

Надеюсь, что эта статья будет полезной не только для начинающих MATLAB, но и для опытных пользователей.

В окончании хотел бы отметить полезность команды “help” – она не только позволяет получить необходимую информацию по функции или команде из командной строки, но и сделать это значительно быстрее, чем через поиск в справке MATLAB.

  • Учебный процесс в IT
  • Matlab

Форматирование осей графиков MatLab

Аналогично описанным выше правилам выполняется форматирование и других объектов графиков. Например, указав курсором мыши на оси графиков (на них тоже есть метки в виде черных квадратиков) и дважды щелкнув левой клавишей мыши, можно увидеть появление окна форматирования объектов дескрипторной графики Property Editor (Редактор свойств, Графический редактор свойств) (рис. 3.12), настроенного на форматирование осей.

Рис. 3.12. Пример форматирования осей графика

Окно графического редактора свойств дескрипторной графики имеет множество вкладок, настройки которых довольно очевидны, и ничто не мешает читателю поэкспериментировать с ними несколько минут. Это позволит понять простоту и одновременно высокую эффективность средств форматирования объектов графики. Например, вы можете задать линейный или логарифмический масштаб осей (вкладка Scale (Масштаб), открытая на рис. 3.12), нормальное или инверсное направление осей ( X, У, а в случае трехмерных графиков и Z), показ сетки (параметр Grid Show), изменить стиль осей и цвета фона (вкладка Style (Стиль)), нанести у осей надписи (вкладка Label (Ярлык)) и пр.

Рис. 3.13 показывает график синусоиды после некоторых операций по форматированию осей. Здесь (кстати, как и на рис. 3.12) задано построение сетки Grid по осям X и Y, построение надписей (просто буквы X и Y) по координатным осям и построение титульной надписи. Заодно на рис. 3.13 показано в открытом виде меню расширенных инструментальных средств графического окна. Его команды подробно обсуждаются в уроке 5. Словом, с объектами графики можно сделать все, что угодно! Некоторые из возможностей форматирования объектов графики мы рассмотрим позже, по мере описания типов графиков.

Рис. 3.13. Пример построения графика синусоиды после форматирования осей

Если компьютер оснащен должным набором шрифтов, то надписи на графиках могут быть сделаны на русском языке — рис. 3.13 хорошо иллюстрирует эту важную для наших пользователей возможность. На нем титульная надпись сделана на русском языке. Средства форматирования надписей дают обширные возможности по выбору набора шрифтов, их стиля, размеров символов и их цвета.

Как сделать цветные линии и маркеры в функции 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
510 6 6 серебряных знаков 16 16 бронзовых знаков

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.29.1725

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *