exponenta event banner

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. 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' когда активна правая сторона. YAxisLocation свойство для Axes объект с двумя осями Y доступен только для чтения.

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

  • 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