Using copyobj to copy lines plotted with datetime xdata

1 回表示 (過去 30 日間)
Kevin J. Delaney
Kevin J. Delaney 2017 年 8 月 25 日
コメント済み: Xiaoyi Zhao 2020 年 11 月 20 日
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 Center および File ExchangeLine Plots についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by