bar chart 2 data sets side by side with different axis

3 vues (au cours des 30 derniers jours)
cdlapoin
cdlapoin le 29 Jan 2022
Commenté : cdlapoin le 29 Jan 2022
hold on;
yyaxis left
bar(T3_blocked)
yyaxis right
bar(S1_free)
set(gca, 'XTickLabel',name)
set(gca, 'XTick',1:length(name))
set(gca, 'XTickLabelRotation',45)
hold off;
produces:
how can I have the two bars for each material side by side, so the y-axes are both increasing in the same direction (up)?

Réponse acceptée

Voss
Voss le 29 Jan 2022
Modifié(e) : Voss le 29 Jan 2022
You can do that by using abs(S1_free) and specifying the locations and widths of the bars:
T3_blocked = [2 1.95 1.5 0.1 1.4]*1e-7;
S1_free = -[1.4 1.4 1 2.9 2]*1e-4;
name = strcat('PZT-',num2cell('A':'E'));
n = numel(name);
hold on;
yyaxis left
bar((1:n)-0.2,T3_blocked,0.4); % locations, heights, width
yyaxis right
bar((1:n)+0.2,abs(S1_free),0.4); % locations, heights, width
set(gca, 'XTickLabel',name)
set(gca, 'XTick',1:length(name))
set(gca, 'XTickLabelRotation',45)
hold off;

Plus de réponses (1)

Image Analyst
Image Analyst le 29 Jan 2022
How about taking the absolute value of S1_free?
bar(abs(S1_free));
  1 commentaire
cdlapoin
cdlapoin le 29 Jan 2022
This paritially works except the bars are overlapping

Connectez-vous pour commenter.

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by