Matlab:如何标记包含polarplot()图的子图?

时间:2017-04-03 08:16:15

标签: matlab plot

我在MATLAB中生成一个由一个子图网格组成的图形,每个子图包含一个极坐标图。我想按行和列标记这个网格。

使用每个图表的title文本,列标签很简单。

对于行标签,使用笛卡尔图我只是滥用第一列子图的y轴标签,但是使用极坐标图(合理地)没有ylabel。 如何添加行标签?

请注意,我使用的是MATLAB 2016a中引入的新polarplot()函数,因此大多数现有的引用polar()的答案都不适用。

1 个答案:

答案 0 :(得分:2)

这非常hacky,但如果你真的想要,你可以在临时轴上创建ylabels,将它们复制到极点图上,然后摆脱临时轴。

示例:

% Setup some polarplots
m=2;n=3;        % Number of plots to make
padding = 0.5;  % Determines space between labels and plots
atmp=axes;
figure;
for j=1:m
    for k=1:n
        subplot(m,n,sub2ind([n,m],k,j));       
        polarplot(0);

        % Add labels
        if j==1 % Top labels
            htmp=xlabel(atmp, 'Top Label');
            htmp.Units='normalized';
            htmp.Position(2)= 1+padding;
            copyobj(htmp,gca);
        end
        if k==1 % Left Labels
            htmp=ylabel(atmp, 'Left Label');
            htmp.Units='normalized';
            htmp.Position(1)= -padding;
            copyobj(htmp,gca);
        end
    end
end
close(atmp.Parent); % Close the temporary axes

创造了:

image of subplots with labels