HIST 関数で描画するヒストグラムの各ビンの左右端の X 座標およびビン幅を取得することはできますか?
10 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2015 年 8 月 25 日
回答済み: MathWorks Support Team
2015 年 8 月 25 日
HIST 関数でヒストグラムを描画しています。HIST 関数では、出力として各ビンの中心座標を取得することができますが、各ビンの左端と右端の X 座標を取得する方法、また、ビンの幅を取得する方法を教えてください。
採用された回答
MathWorks Support Team
2018 年 7 月 6 日
既存の機能としてはありませんが、ヒストグラムを描画している 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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Histograms についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!