首页 > 编程笔记 > MATLAB笔记 阅读:14

MATLAB histogram2():创建二元直方图(附带实例)

二元直方图是一种数值数据条形图,它将数据分组到二维 bin 中。在 MATLAB 中,利用函数 histogram2() 可以创建二元直方图,其调用格式如下:
histogram2(X,Y)    % 使用自动分 bin 算法创建 X 和 Y 的二元直方图,返回均匀面积的 bin
                   % 将 bin 显示为三维矩形条形,每个条形的高度表示 bin 中元素的数量
histogram2(X,Y,nbins)    % 指定在直方图的每个维度中使用的 bin 的数量
histogram2(X,Y,Xedges,Yedges)    % 使用向量 Xedges 和 Yedges 指定各维中 bin 的边界
histogram2('XBinEdges',Xedges,'YBinEdges',Yedges,'BinCounts',counts)  % 手动指定 bin 计数

【实例】绘制二元直方图。在编辑器中编写以下程序并运行:
subplot(2,2,1)
x = randn(10000,1);
y = randn(10000,1);
h = histogram2(x,y);      % 创建二元直方图
nXnY = h.NumBins;         % 计算每个维度的直方图 bin 数量,输出略
counts = h.Values;        % 生成的 bin 计数,输出略

subplot(2,2,2)
h = histogram2(x,y,[12 12],'FaceColor','flat');
% 每个维度 12 个 bin,若 FaceColor 为 'flat',则按高度对直方图条形着色
% colorbar

subplot(2,2,3)
% 块状直方图
x2 = 2*x + 2;
y2 = 5*y + 3;
h = histogram2(x2,y2,'DisplayStyle','tile',...
               'ShowEmptyBins','on');
% 将 ShowEmptyBins 指定为 'on',显示空 bin

subplot(2,2,4)
h = histogram2(x,y);
h.FaceColor = 'flat';      % 按高度对直方图条形着色
h.NumBins = [10 25];       % 更改每个方向的 bin 数量
运行程序后,输出如下图所示图形:


图 1 二元直方图

相关文章