Using copyobj to copy lines plotted with datetime xdata

1 次查看(过去 30 天)
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 个评论
Xiaoyi Zhao
Xiaoyi Zhao 2020-11-20
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.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2017-8-25
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)

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Line Plots 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by