如何使一行情节和指示数据差距?

37视图(30天)
亲爱的,
我有以下功能(请见附件),这些数据包括三列,日期(YYYY-MM-DD)、时间(HH: MM)和最后一列是需要合理的价值与时间。但有差距的数据例如2020-10-10到2020-10-10之间没有数据,我不想联系,但相反,我宁愿留下阴影差距和马克没有数据。你有什么建议吗?
我试过这段代码但我有问题结合数据和时间;我在正确的道路?
数据= readtable (“data.csv”);
dateColumn =数据(:1);
timeColumn =数据(:,2);
valueColumn =数据(:,3);
%日期和时间组件转换为串行数字和日期我得到
%的错误
dateNumbers = datenum (dateColumn {:},“yyyy-mm-dd”);
timeNumbers = datenum (timeColumn {:},“HH: MM”);
dateTime = dateTime (dateNumbers + timeNumbers,“ConvertFrom”,“datenum”);
情节(dateTime, valueColumn {:});
包含(“日期和时间”);
ylabel (“价值”);
标题(的财务数据);
例子定制选项:
网格;
datetick (“x”,“yyyy-mm-dd HH: MM”,“keeplimits”);
传奇(“价值”);

接受的答案

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023年5月22日在22:42
编辑:Sulaymon Eshkabilov 2023年5月22日在7
这是这是可以做到的。注意,只有4个人数据点是失踪,因此,它们可以单独显示。
数据= readtable (“//www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/1390854/Data.txt”);
警告:列标题从文件被修改,使之有效MATLAB标识符表在创建变量名之前。最初的列标题保存在VariableDescriptions属性。
设置“VariableNamingRule”“保存”使用原始的列标题,表变量名。
% = readtable数据(“Data0.txt”);
dateColumn =数据(:1);
timeColumn =数据(:,2);
valueColumn =数据(:,3);
%日期和时间组件转换为串行数字和日期我得到
%的错误
dateNumbers = datenum (dateColumn.date);
timeNumbers = datenum (timeColumn.hr_min,“HH: MM”);
dateTime = dateTime (dateNumbers + timeNumbers,“ConvertFrom”,“datenum”);
指数位于%缺失的数据点
印第安纳州=找到(ismissing (valueColumn.value));
%缺失的数据点被意味着为了显示的数据
%绘制图
valueColumn.value(印第安纳州)=意味着(valueColumn.value“omitnan”);
情节(dateTime(印第安纳州),valueColumn.value(印第安纳州),“罗”,“MarkerFaceColor”,“y”,“markersize”13);
持有
情节(valueColumn.value dateTime,b -。);
包含(“日期和时间”);
ylabel (“价值”);
标题(的财务数据);
%示例定制选项:
网格;
持有
% datetick (“x”、“yyyy-mm-dd HH: MM”,“keeplimits”);
传奇(缺失的数据,“所有现有数据”);
2的评论
Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023年5月23日在接下来
使用这些命令:
数据= readtable (“//www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/1390854/Data.txt”);
警告:列标题从文件被修改,使之有效MATLAB标识符表在创建变量名之前。最初的列标题保存在VariableDescriptions属性。
设置“VariableNamingRule”“保存”使用原始的列标题,表变量名。
dateColumn =数据(:1);
timeColumn =数据(:,2);
valueColumn =数据(:,3);
dateNumbers = datenum (dateColumn.date);
timeNumbers = datenum (timeColumn.hr_min,“HH: MM”);
dateTime = dateTime (dateNumbers,“ConvertFrom”,“datenum”);
指数位于%缺失的数据点
印第安纳州=找到(ismissing (valueColumn.value));
%缺失的数据点被意味着为了显示的数据
%绘制图
valueColumn.value(印第安纳州)=意味着(valueColumn.value“omitnan”);
情节(dateTime(印第安纳州),valueColumn.value(印第安纳州),“罗”,“MarkerFaceColor”,“y”,“markersize”13);
持有
情节(valueColumn.value dateTime,b -。);
包含(“日期和时间”);
ylabel (“价值”);
标题(的财务数据);
%示例定制选项:
网格;
持有
% datetick (“x”、“yyyy-mm-dd HH: MM”,“keeplimits”);
传奇(缺失的数据,“所有现有数据”);

登录置评。

答案(1)

赛斯弗曼
赛斯弗曼 2023年6月5日19:04
datestr 不鼓励
我应该提及 datestr 是气馁。更喜欢 datetime 在可能的情况下。
例如,
dt = datetime (“2020-10-01”,“格式”,“uuuu-MM-dd”)
dt =datetime
2020-10-01
dt。年,dt。月,dt.Day
ans = 2020
ans = 10
ans = 1
考虑 xregion 在MATLAB R2023a或更高版本
%读取数据作为一个时间表
tt = readtimetable (“Data.txt”TextType =“字符串”VariableNamingRule =“保存”)
tt =20844×2时间表
日期 小时:分钟 价值 __________ _________ ______ 2020-10-01“01:00”9.61792020-10-01“01:26”9.63212020-10-01“01:30”9.732020-10-01“01:46”9.792020-10-01“02:00”9.82582020-10-01“02:30”9.86822020-10-01“03:00”9.77162020-10-019.7292“03:232020-10-01“03:30”9.44182020-10-01“03:43”8.89212020-10-01“03:50”9.10162020-10-01“内”9.19882020-10-019.2653“04:122020-10-01“04:30”9.34162020-10-01“凌晨”9.24772020-10-019.203“05:13
%时间字符串转换成时间对象
tt。“小时:分钟”)=持续时间(tt。“小时:分钟”),InputFormat =“hh: mm”)
tt =20844×2时间表
日期 小时:分钟 价值 __________ ________ ______ 2020-10-0101:00:00 9.61792020-10-0101:26:00 9.63212020-10-0101:30:00 9.732020-10-0101:46:00 9.792020-10-0102:00:00 9.82582020-10-0102:30:00 9.86822020-10-0103:00:00 9.77162020-10-0103:23:00 9.72922020-10-0103:30:00 9.44182020-10-0103:43:00 8.89212020-10-0103:50:00 9.10162020-10-0104:00:00 9.19882020-10-0104:12:00 9.26532020-10-0104:30:00 9.34162020-10-0105:00:00 9.24772020-10-0105:13:00 9.203
%将持续时间数据移动到行乘以时间表
tt。日期= tt。日期+ tt.(“小时:分钟”);
tt.date。格式=“uuuu-MM-dd HH: mm”;%更新datetime格式包括小时和分钟
tt。“小时:分钟”)= []%去除“小时:分钟”变量,即不再需要
tt =20844×1的时间表
日期 价值 ___________ ______ 2020-10-01 01:009.61792020-10-01 01:269.63212020-10-01 01:309.732020-10-01 01:469.792020-10-01 02:009.82582020-10-01 02:309.86822020-10-01 03:009.77162020-10-01 03:239.72922020-10-01 03:309.44182020-10-01 03:438.89212020-10-01 03:509.10162020-10-01内9.19882020-10-01 04:129.26532020-10-01 04:309.34162020-10-01凌晨59.24772020-10-01 05:139.203
%情节时间表数据和添加一个xregion传奇条目标记它
%没有数据
情节(tt,“价值”);
xregion (datetime (2020、10、10), datetime(02) 2020年,11日,DisplayName =“没有数据”);
xtickformat (“uuuu-MM-dd HH: mm”);
xtickangle (45);
传奇([“价值”“没有数据”]);

类别

找到更多的在日期和时间帮助中心文件交换

s manbetx 845


释放

R2018b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!