Best Text/number location on the plot

29 visualizaciones (últimos 30 días)
danel james
danel james el 30 de Jul. de 2022
Comentada: Star Strider el 31 de Jul. de 2022
Hello,
I want to generate the values of x on each subplot and i was wondering if there is a way to get the text or numbers placed in 'best' location than specifying (x,y) coordinates for the text location.
x(1) on plot 1
x(2) on plot 2 etc inside a forloop
thank you
dan

Respuesta aceptada

Star Strider
Star Strider el 30 de Jul. de 2022
One approach is to use the legend position after using the 'Location','best' name-value pair, and then interpolating the relative values to the relevant ‘x’ and ‘y’ values (and adding a ‘fudge factor’ if necessary).
x = 1:10;
y = randn(2,size(x,2));
figure
plot(x, y)
Ax = gca;
hl = legend('Location','best');
pos = hl.Position;
txtx = interp1([0 1],xlim,pos(1)*1.1);
txty = interp1([0 1],ylim,pos(2)*1.1);
delete(hl)
text(txtx,txty,'Hi there!')
Experiment to get the desired results.
.
  4 comentarios
danel james
danel james el 30 de Jul. de 2022
Not really! i want to prnit time for each particular plot and on top of each plot should be the corresponding time. But its howing me time has 4 digits after decimal place.
round(t,3) is not working at all
Star Strider
Star Strider el 31 de Jul. de 2022
This is new, and not entirely well-described.
With respect to the text object, perhaps:
text(txtx,txty, sprintf('Time %.2f', time))
assuming here that ‘time’ is a scalar double. If it’s something else, I need to know. See the documentation on sprintf for details.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by