matlab绘图功能不会绘制我的时间系列

时间:2016-06-30 18:03:15

标签: matlab plot time-series

我使用Matlab中的fints函数创建了一个金融时间序列。

所以我的时间是:

test3 =

desc:  (none)
freq:  Unknown (0)

'dates:  (10)'    'times:  (10)'    'series1:  (10)'
'04-Jan-2010'     '17:30'           [        0.0074]
'05-Jan-2010'     '17:30'           [       -0.0109]
'06-Jan-2010'     '17:30'           [       -0.0036]
'07-Jan-2010'     '17:30'           [       -0.0013]
'08-Jan-2010'     '17:30'           [   -3.2500e-04]
'11-Jan-2010'     '17:30'           [    6.4900e-04]
'12-Jan-2010'     '17:30'           [       -0.0120]
'13-Jan-2010'     '17:30'           [        0.0079]
'14-Jan-2010'     '17:30'           [        0.0150]
'15-Jan-2010'     '17:30'           [       -0.0231]

我想绘制系列剧,但它没有绘制任何东西。你会发现附上的结果图片。我用过: 情节(TEST3);

My result

你能帮帮我吗?我没有发现任何相关问题,我觉得这个问题非常愚蠢,但我真的无法弄明白。

非常感谢你的时间

1 个答案:

答案 0 :(得分:1)

出于某种原因,MATLAB在绘制时间序列时为每个日期添加两个条目,一个在指定时间(例如,在您的情况下为04-Jan-2010 17:30:00),另一个在同一天的午夜(例如04 -Jan-2010 00:01:00)添加条目的相应Y值为NaN。

要绘制财务时间序列,您可以:

  1. 在plot命令中添加格式说明符。有了这个,您可以获得标记而不是线条,因为NaN条目将忽略线条样式:

    plot(test3, 'o');
    
  2. 绘制并删除NaN条目:

    p = plot(test3, 'o-');
    nanidx = isnan(p.YData);
    p.YData(nanidx) = [];
    p.XData(nanidx) = [];