matlab画直方图+拟合曲线
- 成图效果
- 1 数据格式
- 2 绘制步骤
- 3 后话
成图效果
1 数据格式
应该准备一个double
的数组,如果是csv或者xlsx直接拖进matlab是table型,这是无法作为绘图参数的
如果是table型,可以使用table2array(data)
进行转换
2 绘制步骤
本文不使用脚本,只使用命令行,绘制简单的带有拟合曲线的直方图只需要一个函数histfit
,这也是histogram和fitting的组合缩写。
- 加载你的数据,首先把数据拖进来,不管用什么方法,拖到右边的工作区里面
比如我有个数据是用Excel导出来的,叫demo,那么我就demo= table2array(demo)
,得到double的demo,这时候工作区会显示double的demo。 - 画图
% 简单出图
histogram(demo)
% 修改直方图柱子数量,想写多少写多少
histogram(demo,20)
% 改变柱子颜色,这个语法和histogram不同!!!
h(1).FaceColor = "g";
% 简化代码,令h代表histogram
h = histogram(demo,20)
% 为了出图好看,限制x轴的区间范围
xlim([-5, 5])
% 改变滤波算法为'kernel'
h = histogram(demo,20,'kernel')
% 添加xy轴的标题,大标题
xlabel('value')
ylabel('count')
title('demooooooo')
% 添加图例,这个需要自己调整图例的指向顺序
legend({'Statistical','Fitted curve'},'Location','southwest')
3 后话
histfit和histogram大部分的语法是相同的,但是bar的颜色方面有些区别
参考资料:
https://ww2.mathworks.cn/help/stats/histfit.html
https://ww2.mathworks.cn/help/matlab/ref/matlab.graphics.chart.primitive.histogram.html?s_tid=doc_ta#d124e606591
matlab里面做的图后期可以导出为eps再去AI里面精修,所以在matlab里面弄个大概就行了
感谢室友贤强的帮助!! 感谢室友贤强的帮助!! 感谢室友贤强的帮助!!
感谢阅读