3

我正在使用rose2.m 制作许多角度直方图。我希望显示每个箱中元素数量的比例范围在 0-50 之间,以 10 为增量递增,对于所有地块,即使特定地块上的最大元素数小于 50。有谁知道如何请问我可以这样做吗?谢谢。

4

3 回答 3

1

此问题与此问题相同,但您正在查看rose2.

我能够使用以下代码将最大值锁定为 50。首先,我在 50 处绘制一个空点,然后hold on锁定该图。rose2然后使用这些界限。

编码:

x = (rand(100,1)*pi);

maxHistogramValue = 50;

figure(44);
clf
% Set the max value to maxHistogramValue:
polar(0, maxHistogramValue,'-k')
hold on;

% Now use rose2:
rose2(x);
于 2012-06-28T18:55:58.983 回答
1

这是另一个示例(基于@Steve的想法):

%# data and angular histogram
x = rand(400,1) .* 2*pi;
[t,r] = rose(x);                %# this does not generate a plot

%# set plot's max radial ticks
figure
rMax = 50;
h = polar(0, rMax);
delete(h)
set(gca, 'Nextplot','add')

%# draw patches instead of lines: polar(t,r)
[x,y] = pol2cart(t,r);
h = patch(reshape(x,4,[]), reshape(y,4,[]), 'b');
alpha(h, 0.5)       %# note: this switches to OpenGL renderer

截屏

这样你就可以控制最大半径,尽管你不能真正控制步数(POLAR 函数总是喜欢大约 5 个径向刻度;请参阅源代码)。

于 2012-06-29T02:24:30.600 回答
0

我不完全清楚rose2.m 是什么,但我想如果你有必要的数据,你可以设置自己的比例/图例。

听起来您有一个角度数组/向量,范围在 0 到 50 之间。我们现在称它为angleArray。

要获取落入每个 bin 的元素数量(10 个单位增量中的 0-50),您可以使用以下代码行:

binCounts = histc(angleArray, 0:10:50);

binCounts 将是 1 x n,其中 n 是长度(0:10:50),并且具有每个 bin 的值的数量的计数。然后可以使用该数据来填充您的规模。

于 2012-06-28T18:57:16.680 回答