yyaxis

Создайте график с двумя осями Y

Описание

пример

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

yyaxis right активирует сторону текущей системы координат, сопоставленную с правой осью Y. Последующие графические команды нацелены на правую сторону.

пример

yyaxis(ax,___) задает активную сторону для осей ax вместо текущей системы координат. Если ось не включает две оси Y, то эта команда добавляет вторую ось Y. Задайте оси в качестве первого входного параметра. Используйте одинарные кавычки вокруг 'left' и 'right'.

Примеры

свернуть все

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

x = linspace(0,10);
y = sin(3*x);
yyaxis left
plot(x,y)

z = sin(3*x).*exp(0.5*x);
yyaxis right
plot(x,z)
ylim([-150 150])

Figure contains an axes. The axes contains 2 objects of type line.

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

Загрузите матрицу hwydata из файла примера accidents.mat. Создайте график поля точек пятого столбца в hwydata против левой оси Y. Добавьте заголовок и подписи по осям.

load('accidents.mat','hwydata')
ind = 1:51;
drivers = hwydata(:,5);
yyaxis left
scatter(ind,drivers)
title('Highway Data')
xlabel('States')
ylabel('Licensed Drivers (thousands)')

Figure contains an axes. The axes with title Highway Data contains an object of type scatter.

Создайте второй график поля точек седьмого столбца в hwydata против правой оси Y. Затем пометьте правую ось Y.

pop = hwydata(:,7);
yyaxis right
scatter(ind,pop)
ylabel('Vehicle Miles Traveled (millions)')

Figure contains an axes. The axes with title Highway Data contains 2 objects of type scatter.

Постройте график двух линий относительно левой оси Y при помощи hold on команда.

x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left
plot(x,yl1)
hold on
plot(x,yl2)

Постройте график двух линий относительно правой оси Y. The hold команда влияет и на левую, и на правые оси y, поэтому вам не нужно ее переиздавать. После графического изображения поверните hold назад.

yr1 = x;
yr2 = x.^2;
yyaxis right
plot(x,yr1)
plot(x,yr2)
hold off

Очистить левую сторону, сделав ее активной и затем используя cla команда.

yyaxis left
cla

Укажите цветовую схему для каждой стороны осей путем установки порядка цвета на два цвета, которые вы хотите использовать. Начиная с R2019b, вы можете использовать colororder функция для установки порядка цвета. Затем постройте график двух линий против левой оси Y и двух линий против правой оси Y. Добавить легенду.

colororder({'b','m'})

yyaxis left
y = [1 2; 3 4];
plot(y)

yyaxis right
z = [4 3; 2 1];
plot(z)
legend

Figure contains an axes. The axes contains 4 objects of type line.

Управление отдельного участка цветами путем установки порядка цвета для каждой стороны осей.

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

yyaxis left
bar(magic(3));
colororder('default')

Постройте три графиков поля точек относительно правой оси. Используйте другой цвет для каждого графика поля точек путем установки порядка цвета на массив названий цвета. Также можно задать цвета с помощью матрицы триплетов RBG. Затем добавьте легенду.

yyaxis right
scatter([1 2 3],[2 5 2],'filled')
hold on
scatter([1 2 3],[3 4 1],'filled')
scatter([1 2 3],[4 2 4],'filled')
hold off
colororder({'r','b','c'})
legend

Figure contains an axes. The axes contains 6 objects of type bar, scatter.

Начиная с R2019b, можно отобразить плиточное размещение графиков с помощью tiledlayout и nexttile функций. Вызовите tiledlayout функция для создания мозаичного графика размещения 2 на 1. Вызовите nexttile функция для создания объектов осей ax1 и ax2. Добавить вторую ось Y к верхней оси можно путем определения ax1 как первый вход в yyaxis. Если вы не задаете оси, то yyaxis добавляет вторую ось Y к текущей системе координат.

x = linspace(1,10);
tiledlayout(2,1)

% Top plot
ax1 = nexttile;
yyaxis(ax1,'left')
plot(ax1,x,sin(x))
yyaxis(ax1,'right')
plot(ax1,x,exp(x))

% Bottom plot
ax2 = nexttile;
plot(ax2,1:10)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Входные параметры

свернуть все

Целевые оси, заданные как Axes объект. Если вы не задаете Axes объект, затем yyaxis использует текущую систему координат.

Ограничения

  • При работе с двумя осями Y вы не можете:

    • Поверните оси (только 2-D вид).

    • Контакт аннотации.

    • Скопируйте объект осей, используя copyobj.

Совет

  • Чтобы определить, какая сторона осей является активной, запросите YAxisLocation свойство для Axes объект. Для свойства задано значение 'left' когда левая сторона активна и 'right' когда активна правая сторона. The YAxisLocation свойство для Axes объект с двумя осями Y считывается только для чтения.

  • Чтобы очистить активную сторону, используйте cla. Чтобы очистить обе стороны осей и удалить правую ось Y, используйте cla reset. Кроме того, можно дождаться удаления обеих сторон и удаления правой оси Y до следующей команды графического изображения путем установки NextPlot свойство Axes объект к 'replaceall'.

  • The Children свойство Axes объект содержит только дочерние элементы для активной стороны. Для доступа ко всем дочерним элементам для обеих сторон используйте allchild функция.

Алгоритмы

свернуть все

Линии сетки

Линии сетки соответствуют отметке деления расположениям вдоль левой оси Y.

Цвета и стили линии

Графики, сопоставленные с определенной стороной осей, используют тот же цвет, что и ось Y с этой стороны. Если сторона содержит несколько линий, то линии повторяются циклически по порядку стилей линии. Левая ось y использует первый цвет в порядке цвета Axes объект, а правая ось y использует второй цвет.

Если вы добавляете вторую ось Y к Axes объект, который содержит графики, тогда существующие графики и левая ось Y не изменяют цвета. Правая ось y использует следующий цвет в порядке цвета.

Свойства осей графика

Свойства осей, относящиеся к оси Y, имеют два значения. Однако MATLAB® предоставляет доступ только к значению для активной стороны. Например, если левая сторона является активной, то YLim свойство Axes объект содержит пределы для левой оси Y. Однако, если правая сторона активна, то YLim свойство содержит пределы для правой оси Y.

Исключением является то, что YAxis свойство Axes объект содержит массив из двух объектов линейки (по одному для каждой оси Y). Можно использовать линейки для доступа к каждой оси Y без зависимости от активной стороны. Для получения примера смотрите «Изменение свойств Графиков с двумя осями Y».

Введенный в R2016a