MATLAB技巧——(2-1)histogram绘图命令,颜色、边缘、透明度和标注等,基础用法与进阶用法介绍

在这里插入图片描述

histogram 是MATLAB中用于绘制直方图的常用函数,功能强大,可灵活设置数据分布、颜色、归一化等参数。本文给出其基础用法和进阶用法

✅ 基础用法(经典示例)

示例 1:绘制基本直方图

data = randn(1000, 1);  % 生成正态分布数据
histogram(data);
title('标准正态分布的直方图');
xlabel('数值区间');
ylabel('频数');

运行结果:
在这里插入图片描述

示例 2:指定柱子个数(bins)

histogram(data, 50);  % 强制使用50个柱子

结果:

在这里插入图片描述

示例 3:设置柱子的边界(edges)

edges = -4:1:4;  % 每隔1一个区间
histogram(data, edges);

结果:
在这里插入图片描述

示例4:设置坐标轴和标题

figure;
histogram(data);
xlabel('误差');
ylabel('频次');
title('柱状图1')

运行结果:
在这里插入图片描述

✅ 进阶用法

示例5:归一化为概率密度(概率密度图)

histogram(data, 'Normalization', 'pdf');  % 概率密度
hold on;
x = -4:0.01:4;
plot(x, normpdf(x, 0, 1), 'r', 'LineWidth', 2);  % 正态分布函数曲线
title('PDF归一化直方图与正态曲线');

'pdf' 会使面积为 1,常用于分布拟合。

运行结果:
在这里插入图片描述

示例6:绘制多组数据直方图对比

data1 = randn(1000,1);
data2 = 2 + randn(1000,1);

histogram(data1, 'BinWidth', 0.5, 'FaceAlpha', 0.5);  % 半透明
hold on;
histogram(data2, 'BinWidth', 0.5, 'FaceAlpha', 0.5);
legend('组1', '组2');
title('两组数据的直方图对比');

运行结果:
在这里插入图片描述

示例7:水平显示直方图(转换方向)

histogram(data, 'Orientation', 'horizontal');

运行结果:
在这里插入图片描述

示例 8:设置颜色、边框、透明度

figure;
h = histogram(data);
h.FaceColor = [0.2 0.6 0.1];     % 柱子填充颜色
h.EdgeColor = 'r';               % 红色边框
h.FaceAlpha = 0.7;               % 透明度

运行结果:
在这里插入图片描述

示例 8:获取直方图数据用于分析

counts = h.Values;     % 每个柱子的数量
edges = h.BinEdges;    % 每个柱子的边界
fprintf('各个柱子的数量:%s',num2str(counts));
fprintf('各个柱子的边界:%s',num2str(edges));

运行结果:
在这里插入图片描述

✅ 三、常用参数总结

参数功能
'BinWidth'指定每个柱子的宽度
'BinEdges'自定义每个柱子的边界
'Normalization''count'(默认),'probability''pdf''cdf'
'FaceColor'设置柱子的颜色
'EdgeColor'设置边缘线颜色
'Orientation''vertical''horizontal'
'FaceAlpha'设置透明度(0~1)

✅ 四、推荐组合用法

data = randn(1000,1);
histogram(data, 'Normalization', 'pdf', ...
          'BinWidth', 0.3, ...
          'FaceColor', [0.1 0.5 0.9], ...
          'EdgeColor', 'none', ...
          'FaceAlpha', 0.6);
title('概率密度直方图');

运行结果:
在这里插入图片描述

❓补充:和 hist 的区别

  • histogram 是推荐新方法(支持更多属性、对象化操作)
  • hist 是旧函数,不推荐新项目使用

例程获取

总结了一个mlx文件,直接运行后可以查看上述各段代码的运行结果,github链接:

https://github.com/evandworld/MATLAB_draw/blob/main/histogram_exam.mlx

如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB卡尔曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值