MATLAB: Normalization of colorbar showing bincounts of binscatter

binscatternormalization of bincounts

I am using bin scatter to plot my 2D data. I want to normalize my bin counts from 0-1 in the color bar instaed of absolute number. I guess its a basic proble, but i am stuck. Any help will be highly appreciated. the example code is shown below. Thank you very much.
x=rand(1,10000);
y=rand(1,10000);
binscatter(x,y,[100,100])
colormap(gca,'jet')

Best Answer

I would use histcounts2() to determine the density within each bin. Then you can normalize those data and send it into histogram2(). See comments within the code below for details.
x=rand(1,10000);
y=rand(1,10000);
% compute bin counts
[binCounts, xbin, ybin] = histcounts2(x,y,[100,100]);
% Normalize bin counts to 0:1
binCountsNorm = (binCounts - min(binCounts(:))) ./ range(binCounts(:));
% Plot the results *
histogram2('XBinEdges',xbin,'YBinEdges',ybin,'BinCounts',binCountsNorm, ...
'DisplayStyle','tile','ShowEmptyBins','on') % or you may what "off"
% Add color bar and make sure the color ranges from 0:1
colorbar()
caxis([0,1])
*The histogram2() options require r2016b or later: