How do I make my bar3h work as intended?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Jack Baker
le 19 Fév 2021
Commenté : Jack Baker
le 20 Fév 2021
Hi,
I'm trying to make a bar3h graph(?) of flow rate data of air through a rectangular tube. I am able to make a contourf graph(?) that has correct color scaling. However when I try using bar3h it scales the colours off of the wrong numbers. I'd also like to fix the axis as they're supposed to go up in 0.02 increments for the x axis and 0.0183 increments for the z axis (with the y axis being the bars representing the flow rate of air).
bar3h(m6, 1)
f = colorbar();
f.Label.String = 'Velocity (m/s)';
caxis([0 17])
title('Contour plot of flow in the pitot tube at medium motor power (463W)');
grid on;
xlabel('Horizontal distance from the left wall (m)');
ylabel('Vertical distance from the top wall (m)');
I've attached the workspace matrices
0 commentaires
Réponse acceptée
Cris LaPierre
le 20 Fév 2021
Modifié(e) : Cris LaPierre
le 20 Fév 2021
A bar plot colors by series, not by height of the bar. If you remove the caxis command, you will see the colors correspond to the X location of the series; 1,2,3,4 or 5.
You can specify your own Z values using this syntax:
bar3h(Z,Y)
You can set your X tick labels using xticklabels
xticklabels(string(X(1:length(m6))));
So I don't have a solution for your desired coloring, but otherwise, try this code (uses your variables X and Y).
load 'Pitot tube contour workspace.mat'
bar3h(Y(1:length(m6)),m6)
xticklabels(string(X(1:length(m6))));
f = colorbar();
f.Label.String = 'Velocity (m/s)';
title('Contour plot of flow in the pitot tube at medium motor power (463W)');
grid on;
xlabel('Horizontal distance from the left wall (m)');
ylabel('Vertical distance from the top wall (m)');
2 commentaires
Cris LaPierre
le 20 Fév 2021
You might find this example of interest. Basically, it shows how to loop through each bar and change its color property. Perhaps this is more like what you wanted?
load 'Pitot tube contour workspace.mat'
b = bar3h(Y(1:length(m6)),m6);
xticklabels(string(X(1:length(m6))));
% Loop through each bar and set color equal to YData
for k = 1:length(b)
ydata = b(k).YData;
b(k).CData = ydata;
b(k).FaceColor = 'interp';
end
f = colorbar();
f.Label.String = 'Velocity (m/s)';
caxis([0 17])
title('Contour plot of flow in the pitot tube at medium motor power (463W)');
grid on;
xlabel('Horizontal distance from the left wall (m)');
ylabel('Vertical distance from the top wall (m)');
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Colorbar dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!