【问题标题】:Matlab: How to label subplots that contain polarplot() plots?Matlab:如何标记包含极坐标图()图的子图?
【发布时间】:2017-08-28 00:39:51
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我希望每行子图有一个 y 标签(即,它是该行的标签)

标签: matlab plot


【解决方案1】:

这很 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

创建:

【讨论】:

  • 正如你所说,它很hacky,但这是Matlab,它可能是目前唯一的方法。非常感谢:-)
  • 谢谢。很遗憾,这不受支持。我从不喜欢 Mathworks 的绘图方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多