# HG changeset patch # User samer # Date 1444402659 -3600 # Node ID d060797e9b623fb566cd1f6d08299ce2d15a873e # Parent ba866ae124c6a18988e11dd64e37c576aa26680e Added multibar function diff -r ba866ae124c6 -r d060797e9b62 graphics/multibar.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphics/multibar.m Fri Oct 09 15:57:39 2015 +0100 @@ -0,0 +1,17 @@ +% multibar - Multiple bar plots with different domains. +% +% multibar :: cells(pair([[N]->Dom],[[N]])), options -> handle. +function h=multibar(D,varargin) + X=flatten(foldl(@union,[],map(@fst,D))); + h=bar(X,cellcat(2,map(@(d)expand(X,d),D)),varargin{:}); +end + +function Y2=expand(X,Data) + Y2=maprows(@get_or_nan,X); + function y=get_or_nan(x) + [dummy,i]=find(Data{1}==x); + if isempty(i), y=nan; else y=Data{2}(i); end + end +end + +