我正在Matlab中绘制一些极坐标。见下面的例子:
我只绘制一个切片,但无法弄清楚如何拉伸/展开这个切片,因为图形窗口中的空间比使用的多。在图片中,我想“像扇子一样打开它”。最小的工作示例:
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];
,类似于笛卡尔图中的工作原理,但这似乎不适用于此。
到目前为止我遗失的任何命令或提示?
我只能想到一个解决方案:增加传递给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