3

rose2.m を使用して、多くの角度ヒストグラム プロットを作成しています。特定のプロットの要素の最大数が 50 未満であっても、すべてのプロットについて、各ビンの要素数を示すスケールを 0 ~ 50 の範囲で 10 ずつ増やしたいと思います。私はこれを行うことができますか?ありがとう。

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 と呼びます。

各ビンに入る要素の数 (10 単位の増分で 0 ~ 50) を取得するには、次のコード行を使用できます。

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

binCounts は 1 x n で、n は長さ (0:10:50) で、各ビンの値の数のカウントを持ちます。その後、そのデータを使用してスケールを設定できます。

于 2012-06-28T18:57:16.680 に答える