拉伸一个polarplot()切片

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

我正在Matlab中绘制一些极坐标。见下面的例子:

slice

我只绘制一个切片,但无法弄清楚如何拉伸/展开这个切片,因为图形窗口中的空间比使用的多。在图片中,我想“像扇子一样打开它”。最小的工作示例:

th = linspace(-pi/2,pi/2,100);
polarplot(th,1.1+zeros(size(th)),'g');
ax = gca;
thetalim([-5 5])
rlim([1.05 1.12])

我尝试过使用ax.Position = [0 0 1 1];,类似于笛卡尔图中的工作原理,但这似乎不适用于此。

到目前为止我遗失的任何命令或提示?

matlab matlab-figure polar-coordinates
1个回答
1
投票

我只能想到一个解决方案:增加传递给polarplot的θ值以在图中获得更大的角度,然后重新标记theta轴:

stretch = 3; % stretch factor
th = linspace(-pi/2,pi/2,100);
polarplot(th*stretch,1.1+zeros(size(th)),'g'); % apply strech to theta
ax = gca;
thetalim([-5 5]*stretch) % take stretch into account when setting theta axis limit
rlim([1.05 1.12])
ax = gca;
ax.ThetaTickLabel = strsplit(num2str((ax.ThetaTick/stretch))); % correct theta labels

在最后一行中,我保持默认的theta ticks并重新标记它们。您可能更喜欢手动指定其他值,例如

ax.ThetaTick = stretch*(-5:5); % specify theta ticks, including stretch
ax.ThetaTickLabel = strsplit(num2str((ax.ThetaTick/stretch))); % correct theta labels

enter image description here

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