HIST 関数で描画するヒストグラムの各ビンの左右端の X 座標およびビン幅を取得することはできますか?
10 views (last 30 days)
Show older comments
MathWorks Support Team
on 25 Aug 2015
Answered: MathWorks Support Team
on 25 Aug 2015
HIST 関数でヒストグラムを描画しています。HIST 関数では、出力として各ビンの中心座標を取得することができますが、各ビンの左端と右端の X 座標を取得する方法、また、ビンの幅を取得する方法を教えてください。
Accepted Answer
MathWorks Support Team
on 6 Jul 2018
既存の機能としてはありませんが、ヒストグラムを描画している Patch オブジェクトからその描画位置を取得することで、ビンの両端の X 座標、およびその幅を計算することができます。
data = randn(1000,1);
% xcenters = -4:4;
% ヒストグラムの描画
figure
hist(data)
% hist(data,xcenters) % ビンの中心を指定した場合も可能
% Patch オブジェクトの描画情報取得
handle = get(get(gca,'children'));
b_left = handle.XData(1,:) % 各ビンの左端の座標
b_right = handle.XData(3,:) % 各ビンの右端の座標
b_width = b_right-b_left % ビン幅(幅は統一されているため、同じ値のベクトル)
なお、MATLAB8.4(R2014b)以降のリリースでは、ヒストグラムの表示や各種プロパティへのアクセスが可能な HISTOGRAM 関数を使用することができます。この関数を使用すると、ヒストグラムのプロパティから値を直接得ることができます。
% HISTOGRAM関数を使用した例
figure
h = histogram(data) % ヒストグラムの描画とオブジェクト取得
b_edge = h.BinEdges % 各ビンのエッジ座標(ベクトル)
b_width = h.BinWidth % ビン幅(スカラ)
0 Comments
More Answers (0)
See Also
Categories
Find more on Histograms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!