Only plot top part of 3D bar
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Scott
le 19 Avr 2014
Réponse apportée : Star Strider
le 19 Avr 2014
I am plotting the results of cross correlation on a bar3 figure. At times, a lot of the values are 'close' to each other, so instead of plotting the bars over the entire range of scores, I'd like to limit the plot to just between the minimum and maximum values of the correlation. When I set the ZLim property, the z-axis scale is correctly set, but the bars themselves extend through the bottom of the chart (trying to find 0). How do I limit the size of the bars themselves?
%for the sake of this question, lets assume the correlation returns
x = 0.9 + (1-0.9).*rand(10,10);
inputs = 1:5:51;
figure
h = bar3(x);
set(gca, 'XTickLabel',inputs);
set(gca, 'YTickLabel',inputs);
set(gca, 'XTick',1:length(inputs));
set(gca, 'YTick',1:length(inputs));
set(gca, 'XLim', [0 length(inputs)+1]);
set(gca, 'YLim', [0 length(inputs)+1]);
set(gca, 'ZLim', [min(min(x)) max(max(x))]);
colorbar
0 commentaires
Réponse acceptée
Star Strider
le 19 Avr 2014
I suggest:
% Create the ‘xt’ variable:
xt = x - min(min(x));
% Change the ‘bar3’ call to:
h = bar3(xt);
% Add these lines to your code after the ‘bar3’ call:
ztiks = floor(linspace(min(min(x)), max(max(x)), 6)*101)/100;
set(gca, 'ZTickLabel', ztiks');
% Delete or comment-out this line:
set(gca, 'ZLim', [min(min(x)) max(max(x))]);
I got this plot:
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Data Distribution Plots dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!