Can I change the color of the label in xline / yline to be different from the color of the line?

I want the label color (i.e., of the text) to be a different color than the line color in xline and/or yline.
Is there an easy way to do this without the workaround below?
xline(5, '-', 'Text');
hold on;
xline(5, '-g');
hold off;

7 commentaires

Unfortunately, No, there is no property "Label color" for xline and yline functions (Constant Line Annotation) which can be modified.
Also, you don't need to use hold for xline() and yline().
Hi Michael,
Instead of plotting the same line twice, you can plot the line once followed by the text as shown below -
xline(5, '-g');
hold on;
text(5, 0, 'Text', 'Color', 'red', 'HorizontalAlignment', 'right', 'VerticalAlignment', 'bottom');
hold off;
Nice tip on the "hold on" / "hold off" -- thanks!
It would be great if MathWorks could make this small change to the next release of MATLAB.
The next release of MATLAB is expected to be within the next two weeks. This proposal for xline and yline text color will definitely not make it into that release.
But it does sound like a reasonable enhancement request to file with Technical Support directly using this link. When you submit that enhancement request, please include some information about how you'd use this functionality in your actual work. Those types of user stories are very valuable when prioritizing work or making sure we don't design our tree swing in such a way that makes it useless for your needs.
For example, is the only property of the label that you need to change independent of the line with which it's associated the color? Or are there other properties that would satisfy your needs?
Thanks, Steven -- very helpful suggestion.
The need is to make xlines and ylines -- which may obscure the data and blank space -- have lower contrast with the plot background color while having the label of the line have high contrast so the viewer can easily read it.
I have submitted an enhancement request at the link you provided with more user story detail. Thank you.
> The need is to make xlines and ylines...have lower contrast with the plot background color while having the label of the line have high contrast so the viewer can easily read it.
To achieve that, lower the Alpha value of the ConstantLine objects. This won't affect the label.
plot(peaks,'k-')
xline(10,'-k','Default Alpha')
xline([20:10:40], '-k', 'Lower alpha','Alpha',0.2)

Connectez-vous pour commenter.

 Réponse acceptée

Starting in R2024b, you can leverage the LabelColor property on ConstantLine to control the color of the label independently of the line.
x = xline(3, 'r', 'some label');
x.LabelColor = 'k';

Plus de réponses (0)

Catégories

En savoir plus sur Labels and Annotations dans Centre d'aide et File Exchange

Produits

Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by