bar chart 2 data sets side by side with different axis

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)?

 採用された回答

Voss
Voss 2022 年 1 月 29 日
編集済み: Voss 2022 年 1 月 29 日

0 投票

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;

その他の回答 (1 件)

Image Analyst
Image Analyst 2022 年 1 月 29 日

0 投票

How about taking the absolute value of S1_free?
bar(abs(S1_free));

1 件のコメント

cdlapoin
cdlapoin 2022 年 1 月 29 日
This paritially works except the bars are overlapping

サインインしてコメントする。

カテゴリ

製品

リリース

R2021a

タグ

質問済み:

2022 年 1 月 29 日

コメント済み:

2022 年 1 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by