-
Notifications
You must be signed in to change notification settings - Fork 2
/
jbfill.m
45 lines (43 loc) · 1.83 KB
/
jbfill.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function[fillhandle,msg]=jbfill(xpoints,upper,lower,color,edge,add,transparency)
%USAGE: [fillhandle,msg]=jbfill(xpoints,upper,lower,color,edge,add,transparency)
%This function will fill a region with a color between the two vectors provided
%using the Matlab fill command.
%
%fillhandle is the returned handle to the filled region in the plot.
%xpoints= The horizontal data points (ie frequencies). Note length(Upper)
% must equal Length(lower)and must equal length(xpoints)!
%upper = the upper curve values (data can be less than lower)
%lower = the lower curve values (data can be more than upper)
%color = the color of the filled area
%edge = the color around the edge of the filled area
%add = a flag to add to the current plot or make a new one.
%transparency is a value ranging from 1 for opaque to 0 for invisible for
%the filled color only.
%
%John A. Bockstege November 2006;
%Example:
% a=rand(1,20);%Vector of random data
% b=a+2*rand(1,20);%2nd vector of data points;
% x=1:20;%horizontal vector
% [ph,msg]=jbfill(x,a,b,rand(1,3),rand(1,3),0,rand(1,1))
% grid on
% legend('Datr')
if nargin<7;transparency=.5;end %default is to have a transparency of .5
if nargin<6;add=1;end %default is to add to current plot
if nargin<5;edge='k';end %dfault edge color is black
if nargin<4;color='b';end %default color is blue
if length(upper)==length(lower) && length(lower)==length(xpoints)
msg='';
filled=[upper,fliplr(lower)];
xpoints=[xpoints,fliplr(xpoints)];
if add
hold on
end
fillhandle=fill(xpoints,filled,color);%plot the data
set(fillhandle,'EdgeColor',edge,'FaceAlpha',transparency,'EdgeAlpha',transparency);%set edge color
if add
hold off
end
else
msg='Error: Must use the same number of points in each vector';
end