text alignment in plots ignores margin

4 visualizaciones (últimos 30 días)
Ralf Hielscher
Ralf Hielscher el 11 de Oct. de 2024
Comentada: Ralf Hielscher el 11 de Oct. de 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.

Respuestas (1)

Jaimin
Jaimin el 11 de Oct. de 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 comentario
Ralf Hielscher
Ralf Hielscher el 11 de Oct. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by