function ShadedPlot( meanarray,disparray,array,orientation,varargin)%,orientation,name,color,marker )
%ShadedPlot - Plots the line with shaded region.
%
% Syntax:
% ShadedPlot(meanarray,disparray,array,varargin)
%
% Description:
% ShadedPlot() - Plots the line with shaded region under the line.
% Depending on the 'orientation', It is possible to have a vertical
% (e.g., altitude) or horizontal (e.g., time) representation.
%
% Inputs:
% meanarray - vector for the Line (Average Data)
% disparray - vector for the Shaded Region (Dispersion Data)
% array - vector for the y-axis (e.g., altitude) or the x-axis (e.g., datetime)
% orientation - orientation of the plot 'vertical' or 'horizontal'
% varargin - Custome parameters such as color,marker, markersize,
% displaynames, legend location
%
%
% Other m-files required: none
% Subfunctions: none
% MAT-files required: none
% Inspired from ploterr function, written by Brendan Hasz (haszx010@umn.edu) Apr 2018
% Author: Marion Ranaivombola
% email: marion.ranaivombola@univ-reunion.fr
% Date: 01-Sep-2021; Last revision: 10-Jan-2023
%
% Copyright (c) 2023, Marion Ranaivombola
% All rights reserved.
%% Colors
blue = [0.30 0.75 0.93];
red = [0.8300 0.1400 0.1400];
orange = [1.00 0.54 0.00];
purple = [0.7176 0.2745 1.0000];
green = [0.00,0.50,0.00];
black = [0 0 0];
gray = [0.5 0.5 0.5];
colors = [blue; red; orange; purple; green; black; gray];
%% Requiered parameters
p = inputParser;
p.KeepUnmatched = true;
addRequired(p, 'meanarray', @isnumeric);
addRequired(p, 'disparray', @isnumeric);
%% Defaults parameters
iscolor = @(x) (isvector(x) && length(x)==3) || ischar(x) || isscalar(x);
addParameter(p, 'Color', blue, iscolor);
addParameter(p, 'Marker', 'none', @ischar);
addParameter(p, 'MarkerSize',4, @isnumeric);
addParameter(p, 'EdgeAlpha',0,@isnumeric);
addParameter(p, 'FaceAlpha',0.3,@isnumeric);
addParameter(p, 'LineName', 'Average', @ischar);
addParameter(p, 'ShadedName', 'Std', @ischar);
addParameter(p, 'Legend_Loc','northeast',@ischar)
parse(p, meanarray, disparray, varargin{:});
Color = p.Results.Color;
Marker = p.Results.Marker;
MarkerSize = p.Results.MarkerSize;
EdgeAlpha = p.Results.EdgeAlpha;
FaceAlpha = p.Results.FaceAlpha;
LineName = p.Results.LineName;
ShadedName = p.Results.ShadedName;
Location = p.Results.Legend_Loc;
%Set Color
if ischar(Color)
try
eval(['Color=' Color ';']);
catch err
error([Color ' is not a valid color string'])
end
end
if isnumeric(Color) && isscalar(Color)
Color = colors(round(Color), :);
end
%% Set column vectors
% meanarray
result_meanarray = iscolumn(p.Results.meanarray);
if result_meanarray ==0
meanarray = p.Results.meanarray';
end
% disparray
result_disparray = iscolumn(p.Results.disparray);
if result_disparray ==0
disparray = p.Results.disparray';
end
% array
result_array = iscolumn(array);
if result_array ==0
array = array';
end
%% Set the Border of Shaded Region
posi = meanarray + disparray;
nega = meanarray - disparray;
%% Change NaN to Zero for Shaded Region
function OutArray = NaN2zero(matrix)
OutArray = matrix;
OutArray(isnan(OutArray))=0;
end
y1 = NaN2zero(nega);
y2 = NaN2zero(posi);
%% Plot shaded area
switch(orientation)
case('vertical')
hold on;
pa = patch([y1; flipud(y2)],[array ; flipud(array)],Color);
X = meanarray;
Y = array;
case('horizontal')
hold on;
pa = patch([array ; flipud(array)],[y1; flipud(y2)],Color);
X = array;
Y = meanarray;
end
pa.EdgeAlpha = EdgeAlpha;
pa.FaceAlpha = FaceAlpha;
pa.DisplayName = ShadedName;
switch(p.Results.Marker)
case('none')
po= plot(X,Y, ...
'DisplayName',LineName, ...
'LineWidth',2, ...
'Color',Color ,...
'LineStyle','-');
otherwise
po = plot(X,Y, ...
'DisplayName',LineName, ...
'LineWidth',2, ...
'Color',Color, ...
'MarkerFaceColor','w', ...
'MarkerSize',MarkerSize, ...
'LineStyle','-');
po.Marker = Marker;
end
hold off
legend([po pa],'Location',Location)
end
没有合适的资源?快使用搜索试试~ 我知道了~
基于Matlab绘制带阴影区域的线附完整代码.zip
共3个文件
m:2个
png:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 136 浏览量
2023-01-26
21:01:33
上传
评论
收藏 97KB ZIP 举报
温馨提示
基于Matlab绘制带阴影区域的线附完整代码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于Matlab绘制带阴影区域的线附完整代码.zip (3个子文件)
ShadedPlot.m 4KB
main.m 1KB
1.png 106KB
共 3 条
- 1
资源评论
天天Matlab科研工作室
- 粉丝: 3w+
- 资源: 7261
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功