matlab画直方图+拟合曲线

成图效果

在这里插入图片描述

1 数据格式

应该准备一个double的数组,如果是csv或者xlsx直接拖进matlab是table型,这是无法作为绘图参数的
如果是table型,可以使用table2array(data)进行转换
在这里插入图片描述

2 绘制步骤

本文不使用脚本,只使用命令行,绘制简单的带有拟合曲线的直方图只需要一个函数histfit,这也是histogram和fitting的组合缩写。

  1. 加载你的数据,首先把数据拖进来,不管用什么方法,拖到右边的工作区里面
    比如我有个数据是用Excel导出来的,叫demo,那么我就demo= table2array(demo),得到double的demo,这时候工作区会显示double的demo。
  2. 画图
% 简单出图
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里面弄个大概就行了

感谢室友贤强的帮助!! 感谢室友贤强的帮助!! 感谢室友贤强的帮助!!


感谢阅读

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐