Using copyobj to copy lines plotted with datetime xdata

Matlab returns a warning "Error updating Line. Value must be a vector of numeric type" when I use copyobj to copy a line object in which the XData are datetimes, not numeric. Is there a way to prepare the new axes to receive lines plotted with datetime? Is there a datetime-tolerant version of copyobj?

1 comentario

I had similar issue for a longtime, and I was "solving" them by simply plot timeserise with "datenum" (i.e., the MATLAB serieal time) not "datetime". But, the simple/real solution should be this:
For the traget figure
set(gca, 'XAxis', matlab.graphics.axis.decorator.DatetimeRuler);
Then, you could do the copyobj which the XData are datetime.

Iniciar sesión para comentar.

 Respuesta aceptada

First you have to set the XRuler property of the second axes to be a DateTime ruler, such as
L = ... the line object
ax = ancestor(L, 'axes');
nax = axes();
nax.XRuler = ax.XRuler;
copyobj(L, nax)

Más respuestas (0)

Categorías

Productos

Etiquetas

Preguntada:

el 25 de Ag. de 2017

Comentada:

el 20 de Nov. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by