0

每个人都想摆脱剧情中的时间间隔,我想让他们表现出来!

所以我的工作区(tableM)中有一个表,其中包含两个变量(日期和温度)。
日期采用“datenum”格式。我对数据做了很多预处理,不得不删除很多行。因此,我最终得到了一个带有间隙的日期变量。

当我通过以下代码绘制温度时:plot(tableM.Temperature)MATLAB 会正常绘制温度并且它只是连接两个点(在缺失日期之前和缺失日期之后)。

当我通过此代码绘制温度plot(tableM.Date,tableM.Temperature)并使用该datetick函数时,我得到一个绘图,其中日期固定在水平轴上,对于日期间隙,MATLAB 用一条直线将两个点(缺失日期之前和之后)连接起来空档期。

我想要的是在间隙期间获得零,而不是连接这些点的直线。

我该怎么做呢?

这是一个例子:

% Generating data:
Date = [datenum(now-2000):datenum(now+2000)]';
Temperature = rand(4001,1); Temperature = sort(Temperature);
% Creating gaps:
Date(500:600) = []; Temperature(500:600) = [];
Date(500:600) = []; Temperature(500:600) = [];
Date(1500:2000) = []; Temperature(1500:2000) = [];
Date(1500:2000) = []; Temperature(1500:2000) = [];
% To make illustration mroe understandable:
Temperature(601:1499) = 1.8 * Temperature(601:1499);
% Normal plot:
figure; plot(Date,Temperature)
ax = gca; ax.XTickLabelRotation = -45; ax.XTick = Date(1,1):200:Date(end,1);
datetick('x',20,'keepticks','keeplimits'); ylabel('Temperature (C)'); axis tight
% Scatter plot:
figure; scatter(Date,Temperature,'.')
ax = gca; ax.XTickLabelRotation = -45; ax.XTick = Date(1,1):200:Date(end,1);
datetick('x',20,'keepticks','keeplimits'); ylabel('Temperature (C)'); axis tight

重要提示:我的“日期”向量是“每小时”的。我不知道这是否会在 Date 向量中的 datenum 值之间产生任何可能有用的特殊差异。

图1: 正态图和散点图

图2: 首选地块

4

0 回答 0