bar chart 2 data sets side by side with different axis

3 次查看(过去 30 天)
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
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
How about taking the absolute value of S1_free?
bar(abs(S1_free));

标签

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by