Plot bar chart from elements of string
이전 댓글 표시
I want to create a bar graph showing the number eruptions for the respective countries. However, the data provided is in a string and I need to loop through the data set to count the respective countries. As it is in a string format, I am struggling to extract out the number of counts for each country in a loop. I managed to use strcmp and find, but the plot does not work. How do I create a loop which plots the chart sucessfully?
% Finding each individual country "eachcountry"
eachcountry = unique(thecountry);
% Counting the length of year for j
% loop through each index
for j = 1:length(thecountry)
A = strcmp('%s'eachcountry(j),thecountry);
% Obtaining index of respective country
indexcountry = find(A)
numberofcounts = numel(indexcountry);
% Plotting with rectangle function, start from the first year, for x axis,
% start from 0 for y axis. Width is 1, while frequency is number of
% counts.
rectangle('Position',[eachcountry(j) 0 1 numberofcounts])
hold on
end
% Labelling axes
xlabel('Country')
ylabel('Frequency')
채택된 답변
추가 답변 (1개)
something like this?
n=ones(size(thecountry))
[G,ctr]=findgroups(thecountry)
nrupt=splitapply(@sum,n,G)
bar(nrupt)
set(gca,'xtick',1:size(nrupt,1),'xticklabel',ctr,'xticklabelrotation',90,'fontsize',7,'ticklength',[0 0])

카테고리
도움말 센터 및 File Exchange에서 Data Distribution Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

