Circular bar graph in matlab

43 views (last 30 days)
SChow on 27 Jul 2022
Answered: Chunru on 27 Jul 2022
Hi, I have a table with two columns(headers- Country, Population) and 100 rows. I would like to plot a circular bar graph like in . Is there an inbuilt fucntion for it? Any help is appreciated.
  1 Comment
Walter Roberson
Walter Roberson on 27 Jul 2022
Sorry, there is no built-in function for that.

Sign in to comment.

Answers (1)

Chunru on 27 Jul 2022
% Some data
T.Country = string(('A':'Z')');
T.Population = randi([1000 10000], size(T.Country));
T = struct2table(T);
n = height(T);
dtheta = 360/n; % sector for each country
gap = 0.1; % gaps betwen adjacent contries
npoints = 21; % npoints for each sector
figure; hold on;
for i=1:n
theta = linspace((i-1)*dtheta, (i-gap)*dtheta, npoints);
patch([0 T.Population(i)*cosd(theta)], [0 T.Population(i)*sind(theta)], 'b');
rtext = T.Population(i)+300;
text(rtext*cosd((i-.5)*dtheta), rtext*sind((i-.5)*dtheta), T.Country(i));
axis equal
axis off


Find more on Line Plots in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!

Translated by