How do I label a contour plot in the same colors as the contour lines?
Show older comments
I am hoping to create a contour plot with each line labeled in the same color as that line. I have found instructions for doing this in Python but cannot find the relevant code for matlab.
This is the code I found online (for Python I think): http://python4esac.github.io/plotting/matplotlib.html
2 Comments
Walter Roberson
on 24 Oct 2017
There is a hint that this might perhaps be possible. The contour object, h, has a hidden property LabelTextProperties, that has a ColorData field that is maybe changeable to a color table. The problem with that is that because it is a hidden property, there is no good way to set the property.
The contour object has a java() method that allows you to dig into the java representation. That includes getting the children objects, which are various text and line objects and a couple of other things I have not explored. I have no yet found any way to change the color of the text objects (just of the line objects.)
Rik
on 25 Oct 2017
I all else fails, you could just insert text objects with a white background. This would require a lot of manual labor to properly align and rotate, and would break the moment you decide to resize your plot. So really a last ditch effort.
Accepted Answer
More Answers (1)
As of MATLAB R2023b we have introduced a new Property Input for LabelColor on Contour called 'flat', which will map Contour Label's Color to the colormap. This color mapping will be equivalent to the Line color mapping.
Please look at our updated documentation for more information:
Examples:
contour(peaks, 'LabelColor', 'flat')
contour(membrane, 'LabelColor', 'flat')
colormap abyss
Categories
Find more on Contour Plots 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!


