首页 > 解决方案 > Matlab用文本标记日期时间图

问题描述

我对 Matlab 中的 text() 函数有疑问。

我有一个情节,需要标记/标记某些点。X 轴是 Matlab 自动调整的时间轴,因为我使用 datetime 作为 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');

(希望没有错误或者它正在工作;),在我的手机上输入)

提前致谢。

标签: matlabdatetime

解决方案


为什么不直接使用 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');

在此处输入图像描述

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

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

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

  Show all properties

推荐阅读