误差阴影图多用来表示置信区间等信息,形式一般是均值+标准差,或者均值的90%-95%。这类图示在每个专业都会用到,尤其是在线性拟合研究中用来表示实际曲线和预测曲线的误差填充,希望对大家有所帮助,下面我们一起来学习如何从0到1实现误差阴影区间图吧。
成图效果展示
-
配色
每一张图的配色决定着图的颜值,好的配色很大程度上给人视觉的冲击美感,配色大家都已经熟悉了具体做法,具体实现方式可以参考之前的文章。
-
数据准备
误差阴影图的数据主要来自于正弦函数和余弦函数随机产生的数据,误差数据以固定值为例子。
-
函数使用
认识函数:fill。fill函数主要是填充一个多边形区域,包括x、y起始和终止坐标等信息。参数设置主要包括:区域填充颜色、边缘颜色、透明度等。
1. 配色
首先我们需要选取喜欢的SCI样图复制到PPT中,取色方式同之前文章,在Matlab中实现0-255的RGB转化为0-1的颜色值,此次误差带图的配色取自华为Mate60:
将图片在PPT中进行处理,插入形状—形状填充—取色器—取色—记录RGB值—归一化,将归一化后的数据在Matlab中读取保存,这样取色就完成啦。
在Matlab中保存配色矩阵:
color_all = [0.329411764705882,0.650980392156863,0.619607843137255;...
0.745098039215686,0.870588235294118,0.874509803921569;...
0.894117647058824,0.905882352941177,0.894117647058824;...
0.0156862745098039,0.282352941176471,0.419607843137255;...
0.305882352941177,0.541176470588235,0.317647058823529];
2. 数据准备
数据是来自南同学自己拟定的随机数据,用到正余弦函数,大家可以结合自己的真实数据进行应用到代码中,数据读取代码如下:
clc;
clear;
%产生随机数据-曲线图的误差数据设置为5,y_mean是均值随机数据
t = 0:0.01:7;
t = t';
y_mean= t.^3.*cos(t).*sin(0.5*t);
std_data = 5;
%误差带上限和下限数据
Y_up = y_mean + std_data;
Y_down = y_mean - std_data;
3. 函数使用
误差阴影图需要的函数为fill;参数主要包括 'Facecolor':面积颜色矩阵、'Edgecolor':边界线颜色以及透明度等参数。绘图代码如下:
%开始绘图
color_mean = color_all(3,:);
color_between = color_all(5,:);
figure('color',[1 1 1]);
plot(t,y_mean,'Linewidth',2,'color',color_mean);
hold on;
%对曲线上下限循环填充,并设置颜色
for i = 1:length(t)-1
x = [t(i),t(i+1),t(i+1),t(i)];
y = [Y_up(i),Y_up(i+1),Y_down(i+1),Y_down(i)];
h1 = fill(x,y,'m');
set(h1,'Facecolor',color_between,'FaceAlpha',0.3,'EdgeColor','none');
end
legend('均值曲线','误差带','Location','Northwest');
最后一步就是设置坐标区信息啦,对坐标轴进行完善与修改,添加相应的图例,代码如下:
% 设置图例
set(gca,'TickDir', 'in', 'TickLength', [.001 .001]);
set(gca,'Linewidth',1);
%保存图片
print(gcf,'1.png','-dpng','-r300');
这样一张面积图就大功告成啦!
完整代码资料获取方式