在Matlab中将y轴标签分组

问题描述 投票:2回答:1

我正在Matlab中创建一个3x1的外部图。在每个外部绘图中,我希望有一个5x1的内部绘图。对于每个3x1外部图,我想要单独的y轴标签。我还希望每个5x1内部图都有自己的y轴标签。所有图都将具有相同的x轴标签。

我一直在使用Matlab的tiledlayout函数。我正在努力创建嵌套的5x1内部图,以及如何为每个内部图赋予自己的独特标签。这是我到目前为止的内容:

close all
f = figure;
subj_plot = tiledlayout(3,1);


% Iterate through all subject

for subj = 1:3
    nexttile
    ylabel(['\bf Subject', num2str(subj)]);
    for fing = 1:5

    end

end
xlabel('test');
subj_plot.TileSpacing = 'compact';

整个数字将是15x1,分组为3x1。我不确定如何进行设置,以及如何使用保持功能将平铺布局图形嵌套在具有不同标签的图形中。我该怎么办?

编辑:每个单独的15x1绘图将具有彼此重叠的两个图形。

EDIT2:DESIRED STRUCTURE WITH DIMENSIONS REDUCED

matlab plot matlab-figure
1个回答
0
投票

我没有功能tiledlayout(我的Matlab早于R2019b),所以我无法完全重现此功能。我会考虑使用text而不是ylabel进行外部绘制,如下所示:

% define ax = get axis for each subplots in your tiled layout
ax.Units = 'pixels'; 
h = text(ax.Position(1)+ax.Position(3)/2, ax.Position(2)+ax.Position(4)/2, 'Your Outer Axis Label', 'Units', 'pixels', 'HorizontalAlignment', 'center', 'Rotation', 90);

当然,如果此处不考虑可重复性,您当然也可以手动拖动文本。

© www.soinside.com 2019 - 2024. All rights reserved.