Color indidual labels in plot

5 Ansichten (letzte 30 Tage)
Hans Eberhardt
Hans Eberhardt am 26 Jul. 2019
Bearbeitet: Adam Danz am 29 Jul. 2019
Hi,
I created a plot inside of a UI with text as one of the axis labels. I'd like to color one of the labels in red (not all of them). How do I do this?
This is the syntax I am using. I'd like to make 'Two' red.
set(handles.axPlot, 'YTickLabel', {'One', 'Two', 'Three});
I've tried html and latex, but neither works.

Akzeptierte Antwort

Adam Danz
Adam Danz am 26 Jul. 2019
Bearbeitet: Adam Danz am 29 Jul. 2019
As Walter The Great has explained here, this isn't possible to do since the tick labels are not processed through an interpreter nor HTML.
You can replace the y ticks with text() objects instead with the 2 lines of code below (axh is the handle to the axes).
axh = cla();
set(axh, 'YTick', 1:3, 'YTickLabel','')
ylim(axh,[0,4]) % Axis limits must be set first!
xlim(axh,[0,4]) % Axis limits must be set first!
h = text(min(xlim(axh))*ones(3,1), 1:3, {'one','two','three'},'rotation',90, ...
'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'center')
h(2).Color = 'r';
Alternatively, you can use this file exchange function (labelpoints.m) and the line of code below (axh is the handle to the axes).
axh = cla();
set(axh, 'YTick', 1:3, 'YTickLabel','')
ylim(axh,[0,4]) % Axis limits must be set first!
xlim(axh,[0,4]) % Axis limits must be set first!
labelpoints(min(xlim(axh)), 1:3, {'one','two','three'}, 'W', 0.3, ...
'rotation',90,'Color', {'k', 'r', 'k'},'FontSize', 12);

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by