Label contour plot elevation marking with text

I was wondering if it is possible to label contour plot elevation lines with text in MATLAB.
My current plot has elervation markings eg. 0.4. I want to mark the lines with n = 0.4 rathe than just 0.4.
Thanks,
Liam

 Akzeptierte Antwort

dpb
dpb am 31 Jul. 2019

0 Stimmen

By using clabel instead, yes...but takes some munging-on there, even. Using the example from countour as starting point--
x = -2:0.2:2;
y = -2:0.2:3;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2-Y.^2);
figure
[C,h]=contour(X,Y,Z,'ShowText','off');
hT=clabel(C,0.4);
hT(2).String=['n = ' hT(2).String];
hT(1).Color='w';
results in
untitled.jpg
It'll take quite a bit of cleanup from here, but it is at least possible.
The problem ran into w/ R2017b w/ clabel is that it won't return the text object line handles for many combinations of inputs and the only ones I found that would include the '+' and upright text -- not possible with the default inline text.
To do that and then find the handles would take "handle-diving" into the hidden properties not exposed by default to find and modify those text() objects appropriately.
Not a task for the faint-hearted and it best be really, really important, probably!
Not bad for an enhancement request, though, like so much of HG2, there are always things that could be done that TMW just chose not to let the user be able to get at easily.

Weitere Antworten (0)

Kategorien

Mehr zu Contour Plots finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2018a

Gefragt:

am 31 Jul. 2019

Beantwortet:

dpb
am 31 Jul. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by