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
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);