Azzera filtri
Azzera filtri

How to create bar graph with categorical data

135 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Gautam Ilango
Gautam Ilango il 18 Mar 2017
Meanwhile I have found this workaround:
prices = [1.23 0.99 2.3];
bar(prices)
set(gca,'xticklabel',{'apples','oranges','pears'});
  4 Commenti
Sajad Ahmad Rather
Sajad Ahmad Rather il 27 Ott 2020
Eactly. It just solved my problem in a second.
Thank you very much from the bottom of my heart.
Well done.
Toshia M
Toshia M il 20 Set 2023
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)

Accedi per commentare.

Più risposte (1)

Chaman Dewangan
Chaman Dewangan il 13 Lug 2021
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)

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by