主要内容

剧情日期和时间

此示例演示如何创建包含日期和时间的折线图,这些日期和时间存储为datetime而且持续时间数组。的datetime数据类型表示时间点,如2020年8月24日上午10:50:30,而持续时间数据类型表示时间长度,例如12小时和30分钟。大多数绘图函数接受datetime而且持续时间数组作为x-,y- - - - - -,z-坐标和显示刻度值与适当的日期和时间单位。您可以使用指定自己的轴限制和刻度值datetime而且持续时间值。还可以更改勾值的格式,以显示所选的日期和时间单位。数据提示显示datetime而且持续时间绘图上光标位置的值,您可以将这些值导出到工作空间变量。从电子表格或逗号分隔值(CSV)文件读取数据时,可以在图中包含日期和时间数据。

绘制日期和时间数据

你可以画出来datetime而且持续时间数组,而不将它们转换为数字数组。大多数绘图函数接受datetime而且持续时间数组作为输入参数。

例如,绘制一个数据集datetime的值x的值和数值y设在。的x-坐标是datetime2021年6月和7月每天的数值。图形上以适当的格式自动显示勾值x设在。在本例中,适当的格式显示了带有年份的月名和日号。

XDates = [datetime(2021,6,1:30) datetime(2021,7,1:31)];YNumsForXDates = sin(0:0.1:6);情节(XDates YNumsForXDates)

图中包含一个axes对象。axis对象包含一个类型为line的对象。

类似地,绘制一个数据集持续时间的值x设在。要创建一个持续时间数组,以秒为单位,请使用函数。

XTimes = seconds(0:120);YNumsForXTimes = cos(0:05:6);情节(XTimes YNumsForXTimes)

图中包含一个axes对象。axis对象包含一个类型为line的对象。

指定坐标轴限制

更改绘图上的限制时,显示的刻度值datetime而且持续时间值会自动更新。可以以交互方式更新限制,也可以通过调用xlimylim,或zlim对应轴的函数。将新限制指定为datetime持续时间数组中。如果您将限制更改为放大或缩小到足够大的范围,那么刻度值可以显示其他日期和时间组件,而不仅仅是新的刻度值。

例如,绘制XDates而且YNumsForXDates数组。然后更改x-轴限制至2021年6月20日和7月7日,使用xlim.图中显示了新的tick值。

情节(XDates YNumsForXDates) xlim ([datetime (“2021-06-20”) datetime (“2021-07-07”)))

图中包含一个axes对象。axis对象包含一个类型为line的对象。

改变x-轴限制至2021年6月20日和6月22日。刻度值显示了小时和分钟的组成部分hh: mm格式,因为该图形被放大到足以显示更小的时间单位x设在。

xlim ([datetime (“2021-06-20”) datetime (“2021-06-22”)))

图中包含一个axes对象。axis对象包含一个类型为line的对象。

指定Tick值

您不必更改轴限制来更改刻度值。相反,您可以沿着x-,y,或z-坐标轴xticksyticks,或zticks功能。将刻度值指定为datetime持续时间数组中。

例如,绘制XTimes而且YNumsForXTimes数组。然后使用命令指定0、60和120秒的滴答值xticks

plot(XTimes,YNumsForXTimes) xticks(seconds([0 60 120]))

图中包含一个axes对象。axis对象包含一个类型为line的对象。

指定勾格式

绘图函数使用默认格式进行显示datetime而且持续时间值作为标记值。方法可覆盖轴上标记值的格式xtickformatytickformat,或ztickformat功能。

例如,plotXDates而且YNumsForXDates.通过使用指定显示年、月和日数字的标记值格式xtickformat

情节(XDates YNumsForXDates) xtickformat (“yyyy-MM-dd”

图中包含一个axes对象。axis对象包含一个类型为line的对象。

作为一种选择,你也可以打电话情节DatetimeTickFormatDurationTickFormat名称-值参数。例如,这个调用情节函数创建了相同的图。

情节(XDates YNumsForXDates,“DatetimeTickFormat”,“yyyy-MM-dd”)

但是,这些名称-值参数可以用于情节只有函数。您可以使用诸如xtickformat在调用任何绘图函数之后,例如散射阀杆,楼梯

存储日期和时间的Axes属性

轴限制,标记标签的位置,以及x-,y- - - - - -,z值为datetime而且持续时间线形图中的数组也存储为类的属性对象。这些属性表示线形图的这些方面。

  • XLimYLimZLim

  • XTickYTickZTick

  • XDataYDataZData

例如,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.然后点击图创建一个数据提示。

DatetimeDataTip.png

要将游标数据导出到工作区,右键单击数据提示并选择导出游标数据到工作区.此操作将光标数据导出到工作区中的结构。

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而且RestorationTimedatetime数组。表示数字的列(损失而且客户)被读入为数值数组。其余列作为字符串读入。表存储来自的数据列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)

图中包含一个axes对象。axis对象包含一个类型为line的对象。

计算停电的持续时间,并将其绘制出来OutageTime.要计算持续时间,请减去OutageTimeRestorationTime.结果,OutageDuration,是一个持续时间数组,因为算术用datetime值生成时间长度作为输出。的格式,其中一些中断持续时间很长y-轴刻度值从小时到年使用ytickformat.有些停机显然持续数年,这一事实表明文件中可能有一些可疑的数据值。根据计划分析数据的方式,可以以某种方式重新处理数据,也可以删除包含错误值的行。

OutageDuration = t . restationtime - T.OutageTime;情节(T.OutageTime OutageDuration) ytickformat (“y”

图中包含一个axes对象。axis对象包含一个类型为line的对象。

另请参阅

||||||||

相关的话题

Baidu
map