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