当前位置:   article > 正文

Matlab绘制直方图、概率密度函数、累积分布函数_matlab绘制直方图和概率分布密度

matlab绘制直方图和概率分布密度

视频学习:https://www.bilibili.com/video/BV1HK411T76d?from=search&seid=16338053070486680597&spm_id_from=333.337.0.0

总结如下:

  1. %%绘制直方图+概率密度函数+累积分布函数
  2. %矩阵A是random生成0-1的随机数,或读入自己的数据
  3. A = rand(1,500)*50;
  4. %求A的最大、最小、均值
  5. maxA = max(A);
  6. minA = min(A);
  7. meanA = mean(A);
  8. %求极差、中位数、偏度、峰度
  9. RangeA = range(A);
  10. medianA = median(A);
  11. skewnessA = skewness(A);
  12. kurtosisA = kurtosis(A);
  13. %生成一个画布
  14. pic = figure;
  15. %绘制直方图(A中的元素有序划分入 x 轴上介于A的最小值和最大值间的 50 个等间距 bin中),centers表示每个bin中心在x轴
  16. [counts,centers] = hist(A,50);
  17. %绘制条形图,counts / sum(counts)计算频率
  18. pic1 = bar(centers,counts / sum(counts),1);
  19. set(pic1,'FaceColor','y')%设置矩形框颜色,‘b’为蓝色
  20. set(pic1,'BarWidth',1);%设置矩形框宽度
  21. %gcf返回当前axis对象的句柄值(一幅图像的每一个组成部分是一个对象)
  22. %gca返回当前Figure对象的句柄值
  23. set(gcf,'position',[220,200,900,600]);%设置画布的位置(220200)和大小(宽900600
  24. set(gcf,'position',[0.1,0.1,0.8,0.8]);%调整图形的位置和比例
  25. axis([0 50 0 0.035]);%设置坐标轴范围[xmin xmax ymin ymax]
  26. %计算概率密度函数,返回在xi点的概率密度f
  27. [f,xi] = ksdensity(A);
  28. hold on %保留当前figure,实现图层叠加
  29. pic2 = plot(xi,f,'LineWidth',1,'LineStyle','-','color','K');%绘制概率密度曲线
  30. %计算概率密度积分分布函数
  31. one_A = unique(A); %unique返回不重复的元素,产生的结果按升序排序
  32. n_elements = histc(A,one_A);%统计在给定区间内的值的个数,左闭右开
  33. c_elements = cumsum(n_elements);%计算元素累加的函数
  34. %AX是坐标轴的句柄,AX(1)是左边的纵轴,AX(2)是右边的纵轴,H1,H2保存的是图形句柄,即两条线
  35. [AX,H1,H2] = plotyy(0,0,one_A,c_elements);
  36. %设置坐标轴的属性
  37. set(AX(1),'ytick',0:0.005:0.035);%设置左边纵轴的刻度
  38. set(AX(2),'ytick',0:50:500);%设置右边纵轴的刻度
  39. set(AX(1),'ylim',[0,0.035]);%设置左边纵轴的取值范围
  40. set(AX(2),'ylim',[0,500]);%设置右边纵轴的取值范围
  41. %设置累积分布函数的线宽
  42. set(H1,'LineWidth',2,'LineStyle','-','color',[0.9400 0.9400 0.9400]);
  43. set(H2,'LineWidth',2)
  44. %设置概率密度函数的线颜色
  45. set(pic2,'LineWidth',2,'color','b');
  46. %设置轴的颜色
  47. set(AX(1),'ycolor','b');
  48. set(AX(1),'ygrid','on');%打开左边纵轴网格
  49. set(AX(2),'ygrid','on');%打开右边纵轴网格
  50. %set(AX(1),'ygrid','off');%关闭左边纵轴网格
  51. %设置title
  52. title('test PDF')
  53. %获取title的相关属性:get(gca,'title')
  54. %设置字符、字体大小
  55. set(get(gca,'title'),'String','Test PDF','FontSize',14);
  56. set(get(gca,'title'),'Position',[25.001 0.0355 0]);%调整title位置
  57. xlabel('X')%设置横轴标签
  58. %set(get(gca,'xlabel'),'String','FontSize',14);%设置字体大小
  59. set(get(AX(1),'ylabel'),'String','PDF','FontSize',14);%设置左纵轴标签
  60. set(get(AX(2),'ylabel'),'String','CDF','FontSize',14);%设置右纵轴标签
  61. set(get(AX(2),'ylabel'),'String','CDF','rotation',270,'Position',[77 250.0002-1.0000]);%设置旋转角度,标签位置
  62. %添加文本 text(x,y,'')
  63. textA = text(-10,0.025,{['Range:',num2str(RangeA)];['Max:',num2str(maxA)];['Mean:',num2str(meanA)];['Min:',num2str(minA)];['Kurtosis:',num2str(kurtosisA)];['Skewness:',num2str(skewnessA)]},'FontSize',14);
  64. %根据图像显示,调整文本属性
  65. set(textA,'FontSize',13,'Position',[10 0.025]);
  66. %输出保存png
  67. print(pic,'draw_hist.png','-dpng','-r200');%保存为png格式(-djpeg保存为JPEG格式)%‘-r200’是图像大小

运行结果如下:

 注:在编码编写时,可查看已设置的标签属性(必须先运行代码出现图像时,才能显示属性):

例如:在命令行窗口输入:>>get(AX(2),'ylabel'),可查看对于右侧轴标签的属性

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/67171
推荐阅读
相关标签
  

闽ICP备14008679号