How to plot with bar3 plot in MATLAB?

조회 수: 3 (최근 30일)
Haitham AL Satai
Haitham AL Satai 2022년 10월 20일
댓글: Haitham AL Satai 2022년 10월 20일
I am trying to draw something like the picture below in Matlab:
with adding the percentage above every bar. Is it possible to get some help, please?
Below is my trying:
B = [86, 82, 80];
B2 = [91, 88, 85];
B3 = [98, 95, 89];
z = [B; B2; B3];
environment = [30*30, 50*50, 100*100];
bar3(z)

채택된 답변

Fabio Freschi
Fabio Freschi 2022년 10월 20일
Check the code below, Hope it helps
clear variables, close all
B = [86, 82, 80];
B2 = [91, 88, 85];
B3 = [98, 95, 89];
z = [B; B2; B3];
environment = [30*30, 50*50, 100*100];
% change the width
bar3(z,0.3)
% label x axis
xticklabels({'Bezier 1','Bezier 2','Bezier 3'})
% label y axis
yticklabels({'30*30', '50*50', '100*100'})
ylabel('Grid size')
% label z axis
zlabel('Success rate')
% set view
view([1 1 1])
% text above bar
xt = repmat(1:3,1,3);
yt = repmat(1:3,3,1);
zt = repmat(105,9,1);
text(xt(:),yt(:),zt(:),[num2str(z(:)),repmat('%',9,1)])

추가 답변 (1개)

Kevin Holly
Kevin Holly 2022년 10월 20일
편집: Kevin Holly 2022년 10월 20일
B = [86, 82, 80];
B2 = [91, 88, 85];
B3 = [98, 95, 89];
z = [B; B2; B3]';
environment = ["30*30", "50*50", "100*100"];
b = bar3(z,0.3);
b(1).FaceColor = 'r';
b(2).FaceColor = 'b';
b(3).FaceColor = [.2 .5 .2];
grid on
h=gca;
h.XTickLabel = ["Beizer 1";"Beizer 2";"Beizer 3"];
h.YTickLabel = environment;
ylabel('Grid Size')
zlabel('Success Rate')
view(-15,16)
Edit:
% Borrowed from Fabio
xt = repmat(1:3,1,3);
yt = repmat(1:3,3,1);
zt = repmat(105,9,1);
text(yt(:),xt(:),zt(:),[num2str(z(:)),repmat('%',9,1)])

카테고리

Help CenterFile Exchange에서 Discrete Data Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by