1

我正在尝试在 matlab 中绘制带有玫瑰函数的归一化概率直方图(我不能使用极坐标直方图,因为我没有最新版本的 Matlab。我的版本是 2015b)。

在正常的直方图中,我通常这样做:

h = histogram(x,'Normalization','probability');

但同样不适用于玫瑰。如果我尝试将 h.Values 传递给玫瑰图,这不起作用,因为玫瑰使用它作为数据,而不是作为值......

x=rand(100)*90;
xRad = x(:)./180*pi;
xRadProb = histogram(xRad,'Normalization','probability');
figure(1)
hax = axes();
rose(hax, xRadProb.Values,10)

任何建议如何做到这一点?非常感谢!

4

1 回答 1

3

看来您需要自己进行标准化。但这很容易。对于'probability',归一化只是将未归一化的结果(每个 bin 的计数)除以数据值的总数。

因此,使用两个输出版本 or rose,标准化,然后使用polar(在 R2015b 中)或polarplot(在最近的 Matlab 版本中)来绘制极坐标图:

[t, r] = rose(xRad, 100); % 100 is desired number of bins. Set as needed
r = r./numel(xRad); % normalize
polar(t, r) % polar plot

在此处输入图像描述

作为检查,以下是polarhistogram使用相同数量的 bin 的结果。请注意,在此函数中,bin 会根据实际数据范围进行调整,因此25需要指定而不是100在示例中指定:

polarhistogram(xRad, 25, 'Normalization', 'probability')

在此处输入图像描述

于 2017-06-27T10:39:07.373 回答