1

MATLAB で 3 次元ヒストグラムをプロットしていますが、軸の範囲が異なることを除けば、問題なく動作しています。等しい値のペアが二等分線上にあるような方法で定義したいと思います。

hist3私のコードは次のようになります ( MATLABの例から多かれ少なかれ「盗まれた」 ):

[vec_voxel_ids, vec_dose_values_reference, vec_dose_values_control] = ...
    textread('_BOOSTINT_voxel_data.txt', '%u %u %u');
mat_dose_values = [vec_dose_values_reference, vec_dose_values_control];
hist3(mat_dose_values, [100, 100]);
xlabel('Dose Reference');
ylabel('Dose Control');
set(gcf, 'renderer', 'opengl');
set(get(gca,'child'), 'FaceColor', 'interp', 'CDataMode', 'auto');

これはどのように見えるかです: ヒストグラム

4

1 に答える 1

4

ビンを再配置して目盛りを中心に合わせ、ビンの値の範囲を選択するには、hist3'edges'オプションを使用できます ( の場合と同様histc)。

data = 500+5*randn(1e3,2);           % dummy data
d = 1;                               % width for x and y bins
x = 480:d:520;                       % range for x bins
y = x;                               % use same range for y bins, can be different
hist3(data, 'edges', {x-d/2,y-d/2}); % subtract half bin width to center bins
set(gcf, 'renderer', 'opengl');
set(get(gca,'child'), 'FaceColor', 'interp', 'CDataMode', 'auto');
view(2)
axis equal
axis([478 522 478 522])
grid minor
xlabel('x')
ylabel('y')

この例では、次のような結果が生成されます。 hist3 出力

これはデータの再ビニングであるため、以前と比べて出力がわずかに異なる場合があることに注意してください。ビンは中心を揃えるためにシフトされ、ヒストグラムが再計算されました。

于 2013-07-17T19:37:24.153 に答える