Отображение данных с несколькими Шкал и осями Пределов

Можно использовать различные методы для визуализации данных с несколькими шкалами и пределами по осям. Для примера можно использовать yyaxis функция создает графики с двумя y -осями. Чтобы создать графики с несколькими x - и y - осями, несколькими шкалами палитры или создать график с прерывистой осью, которая разбита на интервалы, используйте tiledlayout функция.

Отображение данных с двумя осями Y

Используйте yyaxis функция для создания графика с двумя осями Y. Например, можно использовать две оси Y для построения двух линий на разных шкалах.

Создайте объект осей и активируйте левую ось Y, вызвав yyaxis left. Тогда постройте график синусоиды.

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

Figure contains an axes. The axes contains an object of type line.

Активируйте правую ось Y путем вызова yyaxis right. Затем постройте график усиленной синусоиды.

yyaxis right
y2 = sin(3*x).*exp(0.5*x);
plot(x,y2)

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

Отображение данных с несколькими осями X и Y

Начиная с 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';

Figure contains an axes. The axes contains an object of type line.

Создайте второй объект осей и постройте график второго набора данных в черном, а не красном цветах. Затем установите свойства на втором объекте осей, чтобы переместить ось 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';

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

Постройте графики данных на прерывистой оси X

Начиная с 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];

Figure contains an axes. The axes is empty.

Создайте объект осей перед 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')

Figure contains 2 axes. Axes 1 is empty. Axes 2 contains 2 objects of type line, constantline.

Повторите процесс, чтобы создать другой объект осей и построить график для второго интервала. По умолчанию оси появляются в первой плитке. Переместите его во вторую плитку путем установки 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')

Figure contains 3 axes. Axes 1 is empty. Axes 2 contains 2 objects of type line, constantline. Axes 3 contains 2 objects of type line, constantline.

Чтобы добавить заголовок, передайте размещение мозаичного графика в title функция.

title(t,'Attenuated Cosine Function')

Figure contains 3 axes. Axes 1 is empty. Axes 2 contains 2 objects of type line, constantline. Axes 3 contains 2 objects of type line, constantline.

Отображение двух наборов данных с отдельными шкалами палитры

Начиная с 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)

Figure contains an axes. The axes contains an object of type bubblechart.

Отображение шкалы палитры с меткой для каждого объекта осей на восточной плитке размещения. Размещение размещает шкалы палитры и сохраняет их выровненными.

cb1 = colorbar(ax1);
cb1.Layout.Tile = 'east';
cb1.Label.String = 'Time (s)';

cb2 = colorbar(ax2);
cb2.Layout.Tile = 'east';
cb2.Label.String = 'Concentration (M)';

Figure contains an axes. The axes contains an object of type bubblechart.

См. также

Функции

Похожие темы