3D bar plot, does not show solid bars

3 vues (au cours des 30 derniers jours)
Yugal
Yugal le 29 Avr 2025
Commenté : Yugal le 30 Avr 2025
i am using bar3 to do the 3D bar plots
when I use log scale for the z axis, only the top face of the 3D bar (say cuboid) shows, the rest of the bar is invisible,
figure;
bar3(err_data(:,:,2))
set(gca,'ZScale', 'log');
this does not happen on removing log scale
figure;
bar3(err_data(:,:,2))

Réponses (2)

Thorsten
Thorsten le 29 Avr 2025
Try
bar3(log(errdata(:,:,2)))
  2 commentaires
Yugal
Yugal le 29 Avr 2025
Thanks! @Thorsten
But still theres a problem
all the bars does not start from same level in z-axis, so not easy to compare
Yugal
Yugal le 29 Avr 2025
I got a solution
figure;
bar3(log10(err_Cs(:,:,2))-5)
% set(gca,'ZScale', 'log');
I shifted the positve bars to negative side by subtracting all the bars z data by 5 units.

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 29 Avr 2025
You have negative z data. When you set(gca,'ZScale', 'log') then any shape that has a vertex with negative Z cannot be rendered. Remeber that the log() of negative data is pi*1i plus log(-1*data) and renderers cannot handle the imaginary component of the resulting vertices.
  3 commentaires
Yugal
Yugal le 30 Avr 2025
@Walter Roberson that negative comes after taking the log of actual error (e.g. log10(0.1) = -1, like that)
The data itself doesnt have any negative values.

Connectez-vous pour commenter.

Produits


Version

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by