Matlab用文本标记日期时间图

时间:2018-07-17 12:14:47

标签: matlab datetime

我在Matlab中的text()函数有问题。

我有一个图,需要标记/标记某些点。 X轴是Matlab自动调整的时间轴,因为我将日期时间用作X输入。

奇怪的是,我不能简单地使用datenum进行转换而使用text()。

有没有办法做到这一点?

t1 = datetime(2013,11,1,8,0,0);
t2 = datetime(2013,11,5,8,0,0);
t = t1:t2;
y = 1:5;
hold on
plot(t, y);
% wrong x position -> not visible
text(datenum(t1), 0, 'Test');

(希望没有错误,或者正在运行;),在我的手机上键入此内容)

谢谢。

1 个答案:

答案 0 :(得分:1)

为什么不直接使用t1?

t1 = datetime(2013,11,1,8,0,0);
t2 = datetime(2013,11,5,8,0,0);
t = t1:t2;
y = 1:5;
hold on
plot(t, y);
text(t1, 2, 'Test');
text(t2, 2, 'Test2');

enter image description here

XAxis是DatetimeRuler(请参阅here),而没有NumericRuler(请参阅here),因此会误解您的datenum双精度数字。

get(gca,'XAxis')
ans = 
  DatetimeRuler with properties:

             Limits: [1×2 datetime]
         TickValues: [1×5 datetime]
    TickLabelFormat: 'MMM dd'

  Show all properties