Pie charts in subplot with different size

조회 수: 25 (최근 30일)
ALBERTO BASAGLIA
ALBERTO BASAGLIA 2021년 3월 5일
답변: Maadhav Akula 2021년 3월 8일
Hi all!
I am trying to plot pie charts within a subplot. However, I don't know why the charts all come with different sizes. I have attached a figure as an example.
Is there a way to resize all charts so that they all have the same dimension?
Thank you!
  댓글 수: 6
ALBERTO BASAGLIA
ALBERTO BASAGLIA 2021년 3월 6일
Thank you Geoff and Adam!
Unfortunately, I have to plot other charts with many values, so the legend at the bottom causes the same issues....
I solved it by plotting each chart separately and then merging them with an imaging software. It is slow but it works!
Adam Danz
Adam Danz 2021년 3월 6일
I haven't tried it but this problem might not persist if you used tiledlayout rather than subplots.

댓글을 달려면 로그인하십시오.

답변 (1개)

Maadhav Akula
Maadhav Akula 2021년 3월 8일
Hi Alberto,
As @Adam Danz has rightly pointed out tiledlayout function will help you out and also as you mentioned you have other charts as well, you can utilize the 'flow' option in case the number of charts is unknown.
Your code modified using tiledlayout:
figure(2)
% subplot(1,3,1)
tiledlayout(1,3);
% Tile 1
nexttile;
par1=[1319 8513 12767 8074 789];
labels={'4%','27%','41%','26%','3%'};
p1=pie(par1,labels);
set(findobj(p1,'type','text'),'FontSize',17,'FontName','Arial')
title('NUMBER OF STORIES','FontSize',20,'FontName','Arial')
legend({'1 Story',' Stories','3 Stories','4 Stories','5 Stories'},'Location','eastoutside','FontSize',17,'FontName','Arial')
% Tile 2
% subplot(1,3,2)
nexttile;
par2=[17787 4834 3427 975 1174 2041 967];
labels={'57%','15%','11%','3%','4%','6%','3%'};
p2=pie(par2,labels);
set(findobj(p2,'type','text'),'FontSize',17,'FontName','Arial')
title('CONSTRUCTION PERIOD','FontSize',20,'FontName','Arial')
legend({'< 1860','1861-1919','1919-1945','1946-1961','1962-1971','1972-1975','1976-1981'},'Location','eastoutside','FontSize',17,'FontName','Arial')
% Tile 3
% subplot(1,3,3)
nexttile;
par3=[13551 6296];
labels={'68%','32%'};
p3=pie(par3,labels);
set(findobj(p3,'type','text'),'FontSize',17,'FontName','Arial')
title('RING BEAMS AND TIE RODS','FontSize',20,'FontName','Arial')
legend({'Present','Absent'},'Location','eastoutside','FontSize',17,'FontName','Arial')
Hope this helps!

카테고리

Help CenterFile Exchange에서 Pie Charts에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by