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 вы не можете:

    • Вращайте оси (только 2D представление).

    • Прикрепите аннотации.

    • Скопируйте использование объекта осей 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, имеют два значения. However, MATLAB® предоставляет доступ только значение для активной стороны. Например, если левая сторона активна, то YLim свойство Axes объект содержит пределы для левой оси Y. Однако, если правая сторона активна, то YLim свойство содержит пределы для правой оси y.

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

Введенный в R2016a