How can I draw bar graph from the data in matlab?
Show older comments
I want to draw a bar graph in MATLAB that represent players versus years won. For instance,
_
_____________________________________
Country Years won
______________________________________
US 2002, 2005
Canada 2012, 2013
Belgium 2003, 2004,2011, 2017
Hungary 2001, 2015, 2016
How can I draw the bar of this data values in MATLAB? I was wondering if someone could help me?
1 Comment
Answers (1)
Geoff Hayes
on 7 May 2017
0 votes
Hailemariam - this seems like homework, so take a look at the Create Bar Graph with Categorical Data example from MATLAB bar graph. Presumably you will want you x-axis to have labels using each of the four countries from above. This example will show you how to do that.
5 Comments
Geoff Hayes
on 7 May 2017
Hailemariam - how do you want your bar graph to look? Do the country names appear on the x-axis or the y-axis? Does the bar measure how many games each country has won? Where do you want the years to appear in the graph? Perhaps you will realize that a bar graph is not necessarily what you want to show.
Also, how do three countries win in the same year (eg. 2013)? Are they all playing in different tournaments or just one in which case there shouldn't be duplicates?
Geoff Hayes
on 7 May 2017
But how does the bar "work" for the US as they didn't win in 2003 and 2004? Or are you looking more for a way to fill in the spaces (along the axes) that correspond to wins for the country?
If the latter, then you can try something like
Names = {'US','Canada','Belgium','Hungary'};
YearsWon = {[2002, 2005],[2012, 2013],...
[2003, 2004,2011, 2017],[2001, 2015, 2016]};
set(gca, 'YTick',1:4,'YTickLabel', Names, 'XTick',2001:2017);
ylim(gca,[0 5]);
xlim(gca,[2000 2018]);
hold on;
countryColours = {'r', 'b', 'g', 'm'};
for u=1:length(Names)
countryWins = YearsWon{u};
for v=1:length(countryWins)
winYear = countryWins(v);
fill([winYear winYear+1 winYear+1 winYear], ...
[u u u+1 u+1],countryColours{u});
end
end
axis(gca, 'image');
In the above, we loop through all of the countries and use fill to create a square for the country at the win year (a different colour is used for each country).
user1234
on 9 May 2017
Categories
Find more on Time Series Objects 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!