在Octave中在x轴上绘制日期

时间:2015-06-02 14:49:55

标签: matlab date datetime plot octave

我正在尝试在Octave的x轴上创建格式正确的日期时间,但无法使其工作。

我的数据看起来像这样(=默认日期时间格式31 'yyyy-mm-dd HH:MM:SS'

2015-05-29 20:30:23, 100, 10
2015-05-29 21:00:23, 94, 25
2015-05-29 21:30:23, 92, 30

或自启动纪元(1970-1-1)以来的秒数

1432917023, 100, 10
1432918823, 94, 25
1432920623, 92, 30

我想绘制数据集的第2列和第3列,以及x轴上第一列的日期时间。我已经四处搜索,无法找到这个看似简单问题的明确答案:(

我尝试过使用datetick(阅读this link后)。我也试图摆弄strptime,但都无济于事。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

logs = [1432917023,100, 10;
        1432918823, 94, 25;
        1432920623, 92, 30];

# time_t / (24*60*60) = datenum() -719529.375
# convert datenum() from time_t
logs(:,1) = logs(:,1) / (24*60*60) + 719529.375;

plot (logs(:,1), logs(:,2))
plot (logs(:,1), logs(:,3))

datetick('x', "%H:%M");

答案 1 :(得分:-1)

以下代码首先根据日期绘制两个数据集:

dates = [datetime('2015-05-29 20:30:23'),
         datetime('2015-05-29 21:00:23'),
         datetime('2015-05-29 21:30:23')];
data = [100, 10;
        94, 25;
        92, 30];
hold on;
plot(dates, data(:,1), 'rd-');
plot(dates, data(:,2), 'bo-');
hold off;

plot with hours