2D Histograms in Planes XZ, YZ
3 views (last 30 days)
Show older comments
Hello, I am trying to get a representation similar to the one attached to this message. That is to say, I would like to represent two 2D-histogram, one in the plane XZ and the other in the plane YZ. In X and Y, the magnitude to be displayed is the same, but the thing is that the Z-axis is different. As I want to make the representation clearer, I would add additional information in the plane Z=0, that is the reason for which I have not used the 2D-histogram with two different Y-axes. It would be very nice if you could help me to solve this. Thanks in advance, Manuel.
0 Comments
Accepted Answer
Bjorn Gustavsson
on 6 Feb 2014
OK, here's a simple example where you plot a few pieces together...
% First some "test-data":
x = randn(500,1);
x = x-min(x)+0.5;
y = randn(500,1);
y = y-min(y)+0.5;
y = y.^1.5+1*x;
z = exp(-abs(2*x-y)/4); % Just to get something similar to the figure linked to in your reference
[Nx,xH] = hist(x,9); % Histogram of X-values
[Ny,yH] = hist(y,11); % and Y
dX = gradient(xH); % Spacing between histogram bin centres
dY = gradient(yH);
%%Plot stuff...
scatter3(x,y,z,15,z,'filled') % The points
for i1 = 1:length(xH), % And the X-histogram bars
pHmyX(i1) = patch(xH(i1)+dX(i1)*[-1 1 1 -1 -1]/2,...
[0 0 0 0 0],...
[0 0 Nx(i1)*[1 1] 0],rand(1,3));
end
for i1 = 1:length(yH),
pHmyY(i1) = patch([0 0 0 0 0],...
yH(i1)+dY(i1)*0.9*[-1 1 1 -1 -1]/2,...
[0 0 Ny(i1)*[1 1] 0],rand(1,3));
end
You should be able to modify and extend that to suit your needs.
HTH
0 Comments
More Answers (4)
Bjorn Gustavsson
on 6 Feb 2014
Well, have you tried what Walter suggested in his reply in the thread you linked to? Should work, then with the 2 histograms in the XZ and YZ planes you can continue to plot whatever you wanted...
HTH
See Also
Categories
Find more on Data Distribution Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!