Matlab实用代码——直方图的绘制并在单个直方图上标注对应数字

内容:绘制误差分布直方图,并在每个直方图上方显示对应数字。此外,返回一个数据表,该表是真实值、估计值、相对误差的统计。

代码连接:http://download.csdn.net/download/ckzhb/10229949

function [table_final] = barPlot(y_real,y_estimation)
% 统计分数score
% 绘制误差分布直方图
% Para:
%    输入均为列向量;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%  绘制误差分布直方图  %%%%%%%%%%%%%%%%%%%%%%%%%%%
error = y_estimation - y_real;
table_final = table(y_real,y_estimation,error,100*error./y_real,...
     'VariableNames',{'real','estimation','error','relative_error'});
figure;
[errorNum,xaxis] = hist(error,[-60:10:60]); 
bar(xaxis,errorNum)
for i = 1:length(xaxis)
    text(xaxis(i),errorNum(i),num2str(errorNum(i),'%g'),...
    'HorizontalAlignment','center',...
    'VerticalAlignment','bottom')
end
xlabel('误差值');
ylabel('数量');
title('RUL误差分布直方图');
grid on;

end

结果:

Matlab实用代码——直方图的绘制并在单个直方图上标注对应数字_第1张图片

代码详解:

1、table 构建一个数据表。

2、hist根据指定的区间(第二个参数)对数据(第一个参数)进行统计。

第一个返回值是频数统计,第二个返回值是区间即X轴。

3、bar命令绘制直方图。

4、for循环用于在每个直方图上方显示对应频数。



你可能感兴趣的:(Matlab)