How to add histogram to series of scattered plot on the same plot?

Illustration
Madeline - 2020-07-13T14:20:18+00:00
Question: How to add histogram to series of scattered plot on the same plot?

I would like to add hitogram for each scatter plot. The code below plots in different color each slice of 3 dim scatter matrix. I would like to replace 'scatter' with 'scatterhist' but the code does not work anymore.   n = [1:1:10]; % X m = [1:1:3]; % Y z1 = rand(1,20); z2 = rand(1,20); zr1 = reshape(z1,1,1,[]); % Z zr2 = reshape(z2,1,1,[]); % Z F1 = meshgrid(n,m).*zr1; %XYZ F2 = meshgrid(n,m).*zr2; %XYZ C = jet(length(n)) for en = 1:length(n) for pll = 1:length(m) scatter(reshape(F1(pll,en,:),1,[]),reshape(F2(pll,en,:),1,[]),[],C(en,:)); % ? scatterhist hold on end end hold off

Expert Answer

Profile picture of Neeta Dsouza Neeta Dsouza answered . 2025-11-20

scatterhist() uses different syntax than scatter(). It seems like you need to enter all the data at once, as vectors, and then use a grouping variable. Try this:

 

groups = repelem(1:numel(n), numel(z1)*numel(m));
scatterhist(reshape(permute(F1,[3 1 2]),[],1), reshape(permute(F2,[3 1 2]),[],1),...
    'Group', groups(:),...
    'Color', C);


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!