我在MATLAB中生成一个由一个子图网格组成的图形,每个子图包含一个极坐标图。我想按行和列标记这个网格。
使用每个图表的title
文本,列标签很简单。
对于行标签,使用笛卡尔图我只是滥用第一列子图的y轴标签,但是使用极坐标图(合理地)没有ylabel。 如何添加行标签?
请注意,我使用的是MATLAB 2016a中引入的新polarplot()
函数,因此大多数现有的引用polar()
的答案都不适用。
答案 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
创造了: