极地直方图类似于R

时间:2019-01-24 21:37:34

标签: matlab histogram

我正在尝试绘制类似于此图(显然是用R制作)但在Matlab中绘制的图:

几个直方图(而不是条形图)围绕一个圆圈组织 enter image description here

我的数据可以由M个组表示,其中N个数据,每个组的N长度不同。我希望围绕一个圆圈的M个直方图以一种很好的方式将它们可视化。

Group1 = rand(1,20); Hist1 = hist(Group1)
Group2 = rand(1,10); Hist2 = hist(Group2)
Group3 = rand(1,40); Hist3 = hist(Group3)

1 个答案:

答案 0 :(得分:0)

您可以使用polarhistogram做类似的事情;

polar histogram

下面的代码不是很通用,但是可以帮助您入门:

N1 = 20; Group1 = rand(1,N1);
N2 = 10; Group2 = rand(1,N2);
N3 = 40; Group3 = rand(1,N3);

M = 3; % Number of groups
aWidth = 2*pi/M; % Area width in unit circle for each group

% Remap data values to area
Group1 = Group1*aWidth + 0*aWidth;
Group2 = Group2*aWidth + 1*aWidth;
Group3 = Group3*aWidth + 2*aWidth;

polarhistogram(Group1, N1/5, 'FaceColor','red',    'BinLimits', [0 1]*aWidth); hold on;
polarhistogram(Group2, N2/5, 'FaceColor','blue',   'BinLimits', [1 2]*aWidth);
polarhistogram(Group3, N3/5, 'FaceColor','green',  'BinLimits', [2 3]*aWidth);
legend('Group1', 'Group2', 'Group3');