剧情日期和时间
此示例演示如何创建包含日期和时间的折线图,这些日期和时间存储为datetime
而且持续时间
数组。的datetime
数据类型表示时间点,如2020年8月24日上午10:50:30,而持续时间
数据类型表示时间长度,例如12小时和30分钟。大多数绘图函数接受datetime
而且持续时间
数组作为x-,y- - - - - -,z-坐标和显示刻度值与适当的日期和时间单位。您可以使用指定自己的轴限制和刻度值datetime
而且持续时间
值。还可以更改勾值的格式,以显示所选的日期和时间单位。数据提示显示datetime
而且持续时间
绘图上光标位置的值,您可以将这些值导出到工作空间变量。从电子表格或逗号分隔值(CSV)文件读取数据时,可以在图中包含日期和时间数据。
绘制日期和时间数据
你可以画出来datetime
而且持续时间
数组,而不将它们转换为数字数组。大多数绘图函数接受datetime
而且持续时间
数组作为输入参数。
例如,绘制一个数据集datetime
的值x的值和数值y设在。的x-坐标是datetime
2021年6月和7月每天的数值。图形上以适当的格式自动显示勾值x设在。在本例中,适当的格式显示了带有年份的月名和日号。
XDates = [datetime(2021,6,1:30) datetime(2021,7,1:31)];YNumsForXDates = sin(0:0.1:6);情节(XDates YNumsForXDates)
类似地,绘制一个数据集持续时间
的值x设在。要创建一个持续时间
数组,以秒为单位,请使用秒
函数。
XTimes = seconds(0:120);YNumsForXTimes = cos(0:05:6);情节(XTimes YNumsForXTimes)
指定坐标轴限制
更改绘图上的限制时,显示的刻度值datetime
而且持续时间
值会自动更新。可以以交互方式更新限制,也可以通过调用xlim
,ylim
,或zlim
对应轴的函数。将新限制指定为datetime
或持续时间
数组中。如果您将限制更改为放大或缩小到足够大的范围,那么刻度值可以显示其他日期和时间组件,而不仅仅是新的刻度值。
例如,绘制XDates
而且YNumsForXDates
数组。然后更改x-轴限制至2021年6月20日和7月7日,使用xlim
.图中显示了新的tick值。
情节(XDates YNumsForXDates) xlim ([datetime (“2021-06-20”) datetime (“2021-07-07”)))
改变x-轴限制至2021年6月20日和6月22日。刻度值显示了小时和分钟的组成部分hh: mm格式,因为该图形被放大到足以显示更小的时间单位x设在。
xlim ([datetime (“2021-06-20”) datetime (“2021-06-22”)))
指定Tick值
您不必更改轴限制来更改刻度值。相反,您可以沿着x-,y,或z-坐标轴xticks
,yticks
,或zticks
功能。将刻度值指定为datetime
或持续时间
数组中。
例如,绘制XTimes
而且YNumsForXTimes
数组。然后使用命令指定0、60和120秒的滴答值xticks
.
plot(XTimes,YNumsForXTimes) xticks(seconds([0 60 120]))
指定勾格式
绘图函数使用默认格式进行显示datetime
而且持续时间
值作为标记值。方法可覆盖轴上标记值的格式xtickformat
,ytickformat
,或ztickformat
功能。
例如,plotXDates
而且YNumsForXDates
.通过使用指定显示年、月和日数字的标记值格式xtickformat
.
情节(XDates YNumsForXDates) xtickformat (“yyyy-MM-dd”)
作为一种选择,你也可以打电话情节
与DatetimeTickFormat
或DurationTickFormat
名称-值参数。例如,这个调用情节
函数创建了相同的图。
情节(XDates YNumsForXDates,“DatetimeTickFormat”,“yyyy-MM-dd”)
但是,这些名称-值参数可以用于情节
只有函数。您可以使用诸如xtickformat
在调用任何绘图函数之后,例如散射
,阀杆
,楼梯
.
存储日期和时间的Axes属性
轴限制,标记标签的位置,以及x-,y- - - - - -,z值为datetime
而且持续时间
线形图中的数组也存储为类的属性轴
对象。这些属性表示线形图的这些方面。
XLim
,YLim
,ZLim
XTick
,YTick
,ZTick
XData
,YData
,ZData
例如,XLim
而且XTick
的属性XDates
而且YNumsForXDates
商店datetime
值。得到了轴
对象,并显示这些属性。
Ax = gca;斧子。XLim
ans =1 x2 datetime2021-06-01 2021-08-03
斧子。XTick
ans =1 x5 datetime2018-06-01 2018-06-15 2018-06-29 2018-07-13 2018-07-27
导出和转换数据提示值
当您单击一个图时,您将在该光标位置创建一个数据提示来显示它x- - -y坐标。数据提示还显示数值datetime
而且持续时间
值。但是,当您将游标数据导出到工作空间时,坐标将作为一对数值报告。将导出的游标数据转换为datetime
或持续时间
值时,使用num2ruler
函数。
例如,plotXDates
而且YNumsForXDates
.然后点击图创建一个数据提示。
要将游标数据导出到工作区,右键单击数据提示并选择导出游标数据到工作区.此操作将光标数据导出到工作区中的结构。
cursor_info = struct with fields: Target: [1×1 Line] Position: [25 0.5985] DataIndex: 26
的cursor_info。位置
字段将游标数据表示为一对数值。的轴
对象具有转换属性的数值所需的信息x-坐标到adatetime
价值。得到了轴
对象为情节。然后传递数值x-坐标和x-轴从轴
对象num2ruler
.
Ax = gca;datetimePosition = num2尺子(cursor_info.Position(1),ax.XAxis) datetimePosition = datetime 26- june2021
您不需要转换数字y协调,cursor_info.Position (2)
因为y-图中的值为数值。
档案中的情节日期和时间
数据文件(如电子表格和CSV文件)通常以格式化文本的形式存储日期和时间。从这些文件读入数据时,可以将表示日期和时间的文本转换为datetime
或持续时间
数组。然后您可以创建数据的绘图。
例如,从示例数据文件创建一个数据图outages.csv
.这个CSV文件包含六列数据。两列包含表示日期和时间的文本。
西南地区,2002-02-01 12:18 458.9772218,1820159.482,2002-02-07 16:50,冬季风暴东南,2003-01-23 00:49,530.1399497,212035.3001,,冬季风暴东南,2003-02-07 21:15 289.4035493,142938.6282,2003-02-17 08:14,冬季风暴…
从CSV文件中读取数据的推荐方法是使用readtable
函数。这个函数从文件中读取数据,并在表中返回数据。
读到outages.csv
.的readtable
控件中的文本自动转换OutageTime
而且RestorationTime
列datetime
数组。表示数字的列(损失
而且客户
)被读入为数值数组。其余列作为字符串读入。表存储来自的数据列outages.csv
在具有相同名称的表变量中。最后,对的行排序T
通过日期和时间OutageTime
通过使用sortrows
函数。如果表不是按时间排序的,那么在绘制或分析数据之前按时间对表排序是最佳实践。
T =可读的(“outages.csv”,“TextType”,“字符串”);T = sortrows,“OutageTime”)
T =1468×6表地区超时时间损失客户端恢复时间原因___________ ________________ ________________ ________________ __________________ "SouthWest" 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 "winter storm" "MidWest" 2002-03-05 17:53 96.563 2.8666e+05 2002-03-16 06:18 186.44 2.1275e+05 2002-03-26 01:59 388.04 5.6422e+05 2002-03-28 19:55 "winter storm" "MidWest" 2002-03-20 16:46 23141 NaN NaT "unknown""西南" 2002-05-08 20:34 50.732 34481 2002-05-18 11:04 1389.1 1.3447e+05 2002-05-20 10:57 9116.6 2.4983e+06 2002-05-27 15:22 "未知" "东南" 2002-05-27 09:44 237.28 1.7101e+05 2002-05-27 16:19 "风"东南" 2002-06-02 16:11 00 2002-06-05 05:55 "能源紧急" "西" 2002-06-06 19:28 311.86南2002-06-07 00:51 "设备故障" "东南" 2002-06-17 23:01 42.542 39877 2002-06-17 23:49 "雷声暴风" "中西部" 2002-07-01 04:33 203.94 60650 2002-07-02 14:54 "强风暴" "中西部" 2002-07-01 08:18 100.71 1.8116e+05 2002-07-01 11:33 "强风暴" "中西部" 2002-07-10 01:49 168.02 NaN 2002-07-10 17:20 "设备故障" "东南" 2002-07-14 21:32 90.83 60133 2002-07-14 23:53 "雷暴"
可以使用点表示法访问表变量,通过名称引用表变量。使用点表示法,可以像对待数组一样对待表变量。
绘制功率损耗与停机时间的关系图。要从表中访问这些变量,请使用点表示法。
情节(T.OutageTime T.Loss)
计算停电的持续时间,并将其绘制出来OutageTime
.要计算持续时间,请减去OutageTime
从RestorationTime
.结果,OutageDuration
,是一个持续时间
数组,因为算术用datetime
值生成时间长度作为输出。的格式,其中一些中断持续时间很长y-轴刻度值从小时到年使用ytickformat
.有些停机显然持续数年,这一事实表明文件中可能有一些可疑的数据值。根据计划分析数据的方式,可以以某种方式重新处理数据,也可以删除包含错误值的行。
OutageDuration = t . restationtime - T.OutageTime;情节(T.OutageTime OutageDuration) ytickformat (“y”)
另请参阅
情节
|datetime
|持续时间
|秒
|readtable
|sortrows
|xlim
|xtickformat
|xticks