How to display colorbar label with App Designer
45 views (last 30 days)
Show older comments
Hi,
I'm trying to display the colorbar label in an axis from App Designer but the text goes outside the limits and is not properly displayed as shown below:
The code I'm usig:
c = colorbar(app.UIAxes)
colormap(app.UIAxes, jet)
c.Label.String = 'Example Color Label';
How can I properly display the label?
Thanks.
0 Comments
Accepted Answer
Yogesh Khurana
on 18 Jul 2019
Hi,
You can try editing axes font size to a value less than the default value that is 12. If you change the axes font size, then MATLAB automatically sets the font size of the colorbar to 90% of the axes font size. I have written the following code to change axes font size:
c = colorbar(app.UIAxes);
colormap(app.UIAxes, jet);
c.Label.String = 'Example Color Label';
app.UIAxes.FontSize = 10;
The output of above code is:
Another way is to set the position of colorbar manually using Position property of colorbar.
You can also refer to documentations of Axes properties and Colorbar properties:
Axes Properties: https://www.mathworks.com/help/matlab/ref/matlab.graphics.axis.axes-properties.html
Colorbar Properties:
5 Comments
Chris Oreinos
on 14 Oct 2019
I contacted the Mathwors support and was given the following 2, still not-satisfying workarounds:
% Workaround #1
% Move the colorbar y axis label to the left.
hFig = uifigure;
hAxes = uiaxes(hFig);
imagesc(hAxes, magic(5))
hClr = colorbar(hAxes);
hClr.Label.String = 'Magic numbers';
hClr.AxisLocation = 'in';
% Workaround #2
% Expand the width of the outer position of the axes a bit
hFig = uifigure;
hAxes = uiaxes(hFig);
imagesc(hAxes, magic(5))
hClr = colorbar(hAxes);
hClr.Label.String = 'Magic numbers';
hAxes.OuterPosition(3) = 500; % Change this value to fit your needs
On a positive note though, they confirmed that this is a known bug for their development team. Nonetheless, there was no time frame for solving that bug.
Jan S
on 8 Nov 2021
I have the same Problem now. Using the Colorbar with "eastoutside" will lead to a half cutted Colorbar-Label. All other possibilities (north, west, south and inside) aren't really helpfull, because there are axis-Labels and titles from the graph.
I try to use a X-Label for the Colorbar instead which worked well - until i implement the oportunity to switch between a linear and log scale for the colorbar. If i change to log scale, the XLabel will disappear completely. Another Bug maybe? This only works for linear scale.
To the proposed solution from matlab:
Switch the Colorbar-axis-location inside isn't a helpfull solution since it will overlap with the image/graph. Working with resizing in a dynamic app with grid structure is also impossible.
If anybody has a good solution, it would be nice, of he/she can share it until the bug isn't fixed.
More Answers (0)
See Also
Categories
Find more on Develop uifigure-Based Apps 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!