MATLAB Answers

Categorical bar plot in AppDesigner (change colors and add refline)

60 views (last 30 days)
Christian on 20 May 2019
Commented: Jake on 5 Jun 2019
Hello everybody,
I'm currently facing some issues with my categorical bar plot in Appdesigner. In the following a short example of what I'd like to achieve:
categorie = reordercats(categorie,{'Europe' 'Asia' 'USA'});
Data=[Population_Europe Population_Aisa Population_USA];
I'm able to plot this, but I want to add two things, which I'm currently not able to:
1) Change the colours of the bars -> e.g. Europe = blue, Asia = green and USA =red
2) Add a horizontal line at a certain value across the whole bar plot. Here's a quick example, which does not work in appdesigner:
bar(app.UIAxes,xlim,[100 100], 'r','LineWidth',2)
Thank you in advance for your help and have a great day!
Cheers, Christian


Sign in to comment.

Accepted Answer

Kojiro Saito
Kojiro Saito on 21 May 2019
Edited: Kojiro Saito on 21 May 2019
1) You can set colors on each bar by CData property.
b = bar(app.UIAxes, categorie, Data, 'FaceColor', 'flat');
b.CData = [0 0 1; 0 1 0; 1 0 0];
2) In order to add red horizontal line, yline is the easiest way.
yline(app.UIAxes, 150, 'r', 'LineWidth', 2)
yline(app.UIAxes, 200, 'b', 'LineWidth', 2)
Or alternatively, you can utilize grid, but line color and width is only one for this approach.
% Add holizontal red line using grid
app.UIAxes.XGrid = 'off';
app.UIAxes.Layer = 'top';
app.UIAxes.YTick = 100;
app.UIAxes.GridAlpha = 1;
app.UIAxes.GridColor = 'red';
This will work as the following.


Show 4 older comments
Jake on 4 Jun 2019
yline(app.UIAxes, 150, 'r', 'LineWidth', 2)
yline(app.UIAxes, 200, 'b', 'LineWidth', 2)
I tried following this code, but I recieve the error "Undefined function 'yline' for input arguments of type 'matlab.ui.control.UIAxes'
Jake on 5 Jun 2019
Kojiro, it was an issue with the version. I was on 2018a. Thank you!

Sign in to comment.

More Answers (0)

Translated by