Можно использовать различные методы для визуализации данных с несколькими шкалами и пределами по осям. Для примера можно использовать yyaxis
функция создает графики с двумя y -осями. Чтобы создать графики с несколькими x - и y - осями, несколькими шкалами палитры или создать график с прерывистой осью, которая разбита на интервалы, используйте tiledlayout
функция.
Используйте yyaxis
функция для создания графика с двумя осями Y. Например, можно использовать две оси Y для построения двух линий на разных шкалах.
Создайте объект осей и активируйте левую ось Y, вызвав yyaxis left
. Тогда постройте график синусоиды.
figure
yyaxis left
x = linspace(0,10);
y = sin(3*x);
plot(x,y)
Активируйте правую ось Y путем вызова yyaxis right
. Затем постройте график усиленной синусоиды.
yyaxis right
y2 = sin(3*x).*exp(0.5*x);
plot(x,y2)
Начиная с R2019b
Чтобы построить график двух наборов данных с отдельными осями X и Y, создайте два отдельных объекта осей в размещении мозаичной диаграммы. В пределах одного из объектов осей переместите ось X в верхнюю часть графика и переместите ось Y в правую сторону графика.
Для примера можно создать два графика, которые имеют различные пределы x и ось Y.
Сначала создайте два множеств x и y-координат.
x1 = 0:0.1:40; y1 = 4.*cos(x1)./(x1+2); x2 = 1:0.2:20; y2 = x2.^2./x2.^3;
Создайте размещение мозаичного графика и объект осей. Затем постройте график в оси:
Создайте 1
-by- 1
размещение графика t
.
Создайте объект осей ax1
вызовом axes
функция и определение t
как родительский объект.
График x1
и y1
в виде красной линии и задайте ax1
как целевые оси.
Измените цвет оси X и оси Y, чтобы соответствовать построенной линии. Установка свойств на осях после графического изображения гарантирует сохранение настроек.
t = tiledlayout(1,1); ax1 = axes(t); plot(ax1,x1,y1,'-r') ax1.XColor = 'r'; ax1.YColor = 'r';
Создайте второй объект осей и постройте график второго набора данных в черном, а не красном цветах. Затем установите свойства на втором объекте осей, чтобы переместить ось X и ось Y, и чтобы убедиться, что ни один из графиков не заслоняет другой.
Создайте объект осей ax2
вызовом axes
функция и определение t
как родительский объект.
График x2
и y2
в виде черной линии и задайте ax2
как целевые оси.
Переместите ось X вверх и ось Y вправо.
Установите цвет объекта осей равным 'none'
так, чтобы базовый график был виден.
Отключите графики, чтобы предотвратить затенение ребер прямоугольника осями X и оси Y
ax2 = axes(t); plot(ax2,x2,y2,'-k') ax2.XAxisLocation = 'top'; ax2.YAxisLocation = 'right'; ax2.Color = 'none'; ax1.Box = 'off'; ax2.Box = 'off';
Начиная с R2019b
Можно использовать размещение мозаичной диаграммы, чтобы получить внешний вид графика, который разбит на интервалы вдоль одной оси. Например, можно хотеть исключить один раздел оси X, чтобы фокусироваться на других интересующих вас областях.
Создайте векторы координат x
и y
.
x = 0:0.1:60; y = 4.*cos(x)./(x+2);
Создайте плитку графика размещения, содержащую две плитки, и разместите объект осей на обеих плитках. В окончательной презентации этот объект осей появится на заднем плане, позади двух других объектов осей. Сечение его оси X будет видно, чтобы получить внешний вид одной длинной оси X.
Создайте 1
-by- 2
размещение графика t
, и задайте компактный интервал между плитками. Установка интервала между плитками позволяет вам управлять размером зазора между интервалами по оси X.
Создайте оси фона bgAx
вызовом axes
функция и определение t
как родительский объект. Укажите аргументы имя-значение, чтобы удалить все такты и выключить поле графика.
Пролет осей фона через обе плитки путем установки Layout.TileSpan
свойство bgAx
на [1 2]
.
figure t = tiledlayout(1,2,'TileSpacing','compact'); bgAx = axes(t,'XTick',[],'YTick',[],'Box','off'); bgAx.Layout.TileSpan = [1 2];
Создайте объект осей перед bgAx
в первой плитке. Постройте графики x и y и установите пределы оси X на первый интервал:
Создание ax1
вызовом axes
функция и определение t
как родительский объект. По умолчанию оси переходят в первую плитку.
Постройте график x и y в ax1
.
Вызовите xline
функция для отображения пунктирной вертикальной линии на верхнем пределе первого интервала.
Установите пределы оси X в первый интервал, [0 15]
.
Добавьте подпись по осям, чтобы идентифицировать первый интервал.
ax1 = axes(t); plot(ax1,x,y) xline(ax1,15,':'); ax1.Box = 'off'; xlim(ax1,[0 15]) xlabel(ax1, 'First Interval')
Повторите процесс, чтобы создать другой объект осей и построить график для второго интервала. По умолчанию оси появляются в первой плитке. Переместите его во вторую плитку путем установки Layout.Tile
свойство осей, чтобы 2
. Затем соедините оси так, чтобы пределы обеих осей Y совпадали.
% Create second plot ax2 = axes(t); ax2.Layout.Tile = 2; plot(ax2,x,y) xline(ax2,45,':'); ax2.YAxis.Visible = 'off'; ax2.Box = 'off'; xlim(ax2,[45 60]) xlabel(ax2,'Second Interval') % Link the axes linkaxes([ax1 ax2], 'y')
Чтобы добавить заголовок, передайте размещение мозаичного графика в title
функция.
title(t,'Attenuated Cosine Function')
Начиная с R2020b
В объект осей может быть размещен только одна шкала палитры. Чтобы создать визуализацию с несколькими шкалами палитры, сложите несколько объектов осей в размещение графика. Сделать видимой только одну из осей, но отобразить шкалу палитры рядом с каждой из них на внешней плитке размещения.
Создайте векторы координат, данные о размере и данные о цвете для двух пузырьковых графиков.
x = 1:15; n = 70 * randn(1,15) + 50; y1 = n + x.^2; y2 = n - linspace(1,225,15); sz1 = rand(1,15); sz2 = rand(1,15); c = linspace(1,10,15);
Сложите два объекта осей, каждый из которых содержит пузырьковый график, в размещение графика.
Создайте 1
-by- 1
размещение графика t
.
Создайте объект осей и пузырьковый график со winter
палитра.
Создайте объект осей ax2
и пузырь, график с autumn
палитра. Сделать этот объект осей невидимым путем установки Visible
свойство к 'off'
.
Соедините объекты осей, чтобы сохранить их в синхронизации. В этом случае можно сдать детей t
на linkaxes
функция. Также можно передать вектор отдельных объектов осей в функцию.
% create first bubble chart with winter colormap t = tiledlayout(1,1); ax1 = axes(t); bubblechart(ax1,x,y1,sz1,c) colormap(ax1,'winter') % create second bubble chart with autumn colormap ax2 = axes(t); bubblechart(ax2,x,y2,sz2,c) colormap(ax2,'autumn') ax2.Visible = 'off'; % link the limits of axes linkaxes(t.Children)
Отображение шкалы палитры с меткой для каждого объекта осей на восточной плитке размещения. Размещение размещает шкалы палитры и сохраняет их выровненными.
cb1 = colorbar(ax1); cb1.Layout.Tile = 'east'; cb1.Label.String = 'Time (s)'; cb2 = colorbar(ax2); cb2.Layout.Tile = 'east'; cb2.Label.String = 'Concentration (M)';
axes
| tiledlayout
| yyaxis