How to create bar graph with categorical data
150 次查看(过去 30 天)
显示 更早的评论
I would like to plot a bar graph separated in categories. I tried out the example code here from Matlab Documentation:
c = categorical({'apples','oranges','pears'});
prices = [1.23 0.99 2.3];
bar(c,prices)
But I don't get the categories displayed on the "x-Axis" of the graph, instead just int's 1-3.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/161709/image.jpeg)
采纳的回答
Gautam Ilango
2017-3-18
4 个评论
Sajad Ahmad Rather
2020-10-27
Eactly. It just solved my problem in a second.
Thank you very much from the bottom of my heart.
Well done.
Toshia M
2023-9-20
Starting in R2023b, you can specify x as a string vector (or as a cell array of character vectors). This enhancement makes it much easier to label the bars with text in a specific order. For example, create three bars with text labels:
c = ["pears" "apples" "oranges"];
prices = [1.23 0.99 2.3];
bar(c,prices)
更多回答(1 个)
Chaman Dewangan
2021-7-13
I found answer in mathworks.com as. Very happy it is working nicely.
One way to indicate categories for your bars is to specify X as a categorical array. The bar function uses a sorted list of the categories, so the bars might display in a different order than you expect. To preserve the order, call the reordercats function.
Define X as categorical array, and call the reordercats function to specify the order for the bars. Then define Y as a vector of bar heights and display the bar graph.
X = categorical({'Small','Medium','Large','Extra Large'});
X = reordercats(X,{'Small','Medium','Large','Extra Large'});
Y = [10 21 33 52];
bar(X,Y)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Bar Plots 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!