MATLAB: How to plot a 3D histogram using hist3 with log scale

axisgcahis3logscale

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.

Best Answer

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