function h=greylevelboxplot(r, xpos, greylevels, boxparms) %greylevels are the edges of the boxes where the colors will be drawn %xpos is where on the x axis the middle of the boxes should be %makes a bar with grey shading for different levels if(nargin==3) %no boxparms boxparms.whiswid = 0.1; boxparms.boxwid = 0.25; boxparms.boxcolor = [1 1 1]; boxparms.lowwhis = 2.5; boxparms.upwhis = 97.5; boxparms.lowbox = 25; boxparms.upbox = 75; end %whiswid=.1; and boxwid=.25; are reasonable whiswid = boxparms.whiswid; boxwid = boxparms.boxwid; boxcolor = boxparms.boxcolor; lowwhis = boxparms.lowwhis; upwhis = boxparms.upwhis; lowbox = boxparms.lowbox; upbox = boxparms.upbox; n = histc(r,greylevels); n = [n(1:(end-2)); n(end-1)+n(end)]; %histc makes the last category r == edge(end) n = 1-n/sum(n); figure(2) plot((1-n)) pause figure(1) for j = 1:(length(greylevels)-1), botbox = greylevels(j); topbox = greylevels(j+1); boxcolor = n(j)*[1 1 1]; h=patch([xpos-boxwid xpos+boxwid xpos+boxwid xpos-boxwid], [botbox botbox topbox topbox],boxcolor); set(h,'EdgeColor',boxcolor); hold on; end return i = xpos; botwhis=prctile(r,lowwhis); topwhis=prctile(r,upwhis); botbox=prctile(r,lowbox); topbox=prctile(r,upbox); midbox=nanmedian(r); plot([i-whiswid i+whiswid],[botwhis botwhis],'-k',[i-whiswid i+whiswid],[topwhis topwhis],'-k'); hold on; %patch([i-boxwid i+boxwid i+boxwid i-boxwid], [botbox botbox topbox topbox],boxcolor); plot([i-boxwid i+boxwid],[botbox botbox],'-k',[i-boxwid i+boxwid],[topbox topbox],'-k'); plot([i-boxwid i+boxwid],[midbox midbox],'-k',[i-boxwid i+boxwid],[topbox topbox],'-k'); plot([i i],[botwhis botbox],'-k',[i i],[topbox topwhis],'-k'); plot([i-boxwid i-boxwid],[botbox topbox],'-k',[i+boxwid i+boxwid],[botbox topbox],'-k'); hold off; %set(gca,'XLim',[0 n+1],'XTick',1:n)