How can I plot a 3D histogram using hist3 with log scale?

15 views (last 30 days)
Here is an example code:
x = 1:20;
y = 2*x;
hist3([x' y']);
set(gca,'zscale', 'log');
With the log scale on the Z axis the bars disappear. I think this is because 0 values are mapped to -Inf. I there any workaround for this? I have seen for 2D hist that it is possible to adjust the bar base to 1, but I do not know how to do it for 3D hist.
Thank you.

Accepted Answer

Matt Fig
Matt Fig on 20 Nov 2012
x = 1:20;
y = 2*x;
hist3([x' y']);
S = findobj('type','surf');
ZD = get(S,'zdata');
ZD(~ZD) = .1;
set(S,'zdata',ZD);
set(gca,'zscale', 'log');

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!