Code covered by the BSD License  

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
bihist (back to back histogram)

5.0 | 1 rating Rate this file 2 Downloads (last 30 days) File Size: 1.68 KB File ID: #23312 Version: 1.3
image thumbnail

bihist (back to back histogram)


Mauro (view profile)


17 Mar 2009 (Updated )

create a back-to-back histogram

| Watch this File

File Information

a good way to show differences between two sets of data about their location and distribution

MATLAB release MATLAB 7.8 (R2009a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (3)
07 Oct 2009 Mauro

Mauro (view profile)

Thx, i hope you like the new version

Comment only
09 Sep 2009 Anastasia

%Just edited this one a bit to have more consistency in setting %colours and to keep the variable names a bit more clear %(left/right).
%Also, I put the scale back in and the histograms are now on the %same scale, although it shows a negative value on the left at %the moment.
%Hope it's a useful addition.

% BIHIST(X1,X2,N) open a new figure an plot a back to back histogram
% X1: variable 1 (right side, colour blue)
% X2: variable 2 (right side, colour green)
% n : number of classes for each histogramm

% make two dummy-histogram
[temp, d1] = hist(x1,n);
[temp, d2] = hist(x2,n);
clear temp
% calculate classes
d = min([d1 d2]):((max([d1 d2])-min([d1 d2]))/(n-1)) : max([d1 d2]);
% create the two histograms
templ = hist(x1,d);
tempr = hist(x2,d);
% scaling the histograms
%temp1 = temp1/sum(temp1);
%temp2 = temp2/sum(temp2)*-1;
% create bar plot
hold on
right = barh(tempr,'style','hist');
plot([0 0], [1 n],'k')
% change color of left histogram
set(left,'FaceColor',[0 0 1]);
% change color of right histogram
set(right,'FaceColor',[0 1 0]);
%clear the x-axis
xlim([-max(abs([templ tempr]))*dt max(abs([templ tempr]))*dt])
% mark the y-axis
yl = get(gca,'YTick');
b = (max(d)-min(d))/(n-1);
a = max(d)-b*n;
yl2 = yl*b+a;
ds = cell(size(yl2));
for k=1:length(yl2)
ds{k} = num2str(yl2(k),3);
clear k

18 Mar 2009 Mauro

Mauro (view profile)

new version is on the way

Comment only
18 Mar 2009 1.2

change in labeling the y-axis

18 Sep 2009 1.3

new colour and new label for x-axis

Contact us