【问题标题】:How to scale amplitude of polar plot?如何缩放极坐标图的幅度?
【发布时间】:2020-03-19 16:27:44
【问题描述】:

我有一个数据矩阵。我在 MATLAB 中使用了polarplot 命令来绘制这个关于 theta 的矩阵。

数据在 3999.20 和 4001.52 之间震荡 如下图所示,数据震荡的数量级太小,看不清。

如何修改我的极坐标图以查看小振荡?

我的代码如下:

yf=[%750 data point]
theta = 0:4*pi/749:4*pi;
rho = yf
pax = polaraxes;
polarplot(theta,rho)
pax.ThetaDir = 'counterclockwise';
pax.ThetaZeroLocation='right'
pax.ThetaColor='r'
pax.ThetaTick=[0 30 60 90 120 150 180 210 240 270 300 330 ];
pax.RDir='normal';
pax.RTick=[3999.34 3999.67 4000 4000.33 4000.66 4000.99 4001.33 ]
pax.FontSize = 12;

期望的输出:

实际输出

2 轴图

【问题讨论】:

  • 如果您只需要可视化,您可以为绘图设置r limits

标签: matlab matlab-figure polar-coordinates


【解决方案1】:

举个例子,按照@beaker 的建议设置r limits

以下代码在第二个示例中使用与 rlim 相同的数据来设置手动限制。这会缩放极轴,使其仅绘制 [3999,4000] 之间的值,从而夸大了振荡的比例。

theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta) + 3999 %To approximate your data

figure;
subplot(1,2,1)
polarplot(theta,rho)
title('Automatic r-limits')

subplot(1,2,2)
polarplot(theta,rho)
rlim([3999, 4000])
title('rlim([3999, 4000])')

【讨论】:

  • 嗨塞西莉亚,我不知道我能不能感谢你。你的解决方案奏效了。看来我所有的圣诞节都一下子来了。谢谢。
【解决方案2】:

可能是这样,您减去数据的平均值并将幅度缩放 10 倍?

yf=[%750 data point]
amp = yf - mean(yf);
amp = amp*10; % choose whatever scaling factor works for you
theta = 0:4*pi/749:4*pi;
rho = mean(yf) + amp;

没有实际数据,很难说这会是什么样子,但一般原则应该是可行的。

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 2018-03-03
    • 2016-09-07
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多