text alignment in plots ignores margin

4 Ansichten (letzte 30 Tage)
Ralf Hielscher
Ralf Hielscher am 11 Okt. 2024
Kommentiert: Ralf Hielscher am 11 Okt. 2024
If I do
h = text(0,0,'hallo','VerticalAlignment','top','margin',10)
I expect that verticalAlignment referes to the top of the box defined by margin. Unfortunately this is not the case. Instead it is alway the top of the text. However, when placing, e.g, text to a marker I would like to add some space between marker and text. Is there any option to accomplish this?
Thank you very much.

Antworten (1)

Jaimin
Jaimin am 11 Okt. 2024
You can manually set the margin between the marker and text using the “set” function.
Kindly refer to the following code snippet for better understanding. In this snippet, “x_marker” and “y_marker” represent the <x, y> position of a marker, while “test_height” and “margin” denote the expected height and margin.
set(h, 'Position', [x_marker, y_marker + text_height + margin, 0]);
For more information on “set” function kindly refer following MathWorks Documentation.
I hope this will helpful.
  1 Kommentar
Ralf Hielscher
Ralf Hielscher am 11 Okt. 2024
The problem with this code is, that x,y of the marker are usually in data scale because I want to annotate something in a plot. "textheight" and "margin" on the other hand are in pixels or normalized unit.
In order to make your code work one need to change unit to pixels, make the correction and then switch back, i.e.
h.Units = "pixels";
h.Position = h.Position + [0, offsetY, 0]
h.Units = "data"
Now this works once, but gets out of possition once the figure is resized. Now you can put something like this into a callback function and this eventually works. However, it is very ugly and slow. Especially, the change of unit in the above code takes extremly much time.
All the best,
Ralf.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Produkte


Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by