Main Content

datetick

日期格式的刻度标签

说明

注意

使用所需的绘图函数绘制 datetime 值通常更方便。然后,您可以使用 xtickformatytickformat 函数设置刻度标签的格式。datetick 在绘制日期序列值数值时很有用。

datetick(tickaxis) 使用日期标记 tickaxis 所指定轴的刻度线,并替换默认数值标签。datetick 基于指定轴的最小和最大范围选择标签格式。轴数据值应为如 datenum 函数返回的日期序列值。

示例

datetick(tickaxis,dateFormat) 根据 dateFormat 设置标签的格式。

示例

datetick(___,'keeplimits') 将刻度标签更改为基于日期的标签,同时保留坐标轴范围。将 'keeplimits' 追加到上述任何语法末尾。

示例

datetick(___,'keepticks') 将刻度标签更改为基于日期的标签,同时保留其位置。将 'keepticks' 追加到上述任何语法末尾。

datetick(axes_handle,___)axes_handle 指定的坐标区上标记坐标区刻度线。axes_handle 参数可以置于上述语法中的任何输入参数组合之前。

示例

全部折叠

根据 1990 年美国人口统计绘制 20 世纪人口数据图,并用 2 位数年份标记 x 轴刻度。

按十年期创建时间数据。

t = (1900:10:1990)';

输入美国的总人口计数。

p = [75.995 91.972 105.711 123.203 131.669 ...
	150.697 179.323 203.212 226.505 249.633]';

使用 datenum 函数将年份转换为日期序列值,然后绘制数据条形图。

figure
bar(datenum(t,1,1),p)

Figure contains an axes object. The axes object contains an object of type bar.

用 2 位数年份替换 x 轴刻度。数值标识符 11 对应于预定义的 MATLAB® 日期格式 'yy'

dateFormat = 11;
datetick('x',dateFormat)

Figure contains an axes object. The axes object contains an object of type bar.

根据一天中的不同小时数(以 AM 和 PM 标示上午和下午)为刻度绘制流量计数数据图。

获取流量计数数据。

load count.dat

为一个任意日期(例如 1995 年 4 月 18 日)创建数组。

n = length(count);
year = repmat(1995,1,n);
month = repmat(4,1,n);
day = repmat(18,1,n);

为 24 小时中的每个小时创建数组。

hour = 1:n;
minutes = zeros(1,n);

获取日期数组的日期序列值。

sdate = datenum(year,month,day,hour,minutes,minutes);

根据日期序列值绘制流量数据的三维条形图。

bar3(sdate,count)

Figure contains an axes object. The axes object contains 3 objects of type surface.

用一天的小时数标记图形的 y 轴刻度线。

datetick('y','HHPM')

Figure contains an axes object. The axes object contains 3 objects of type surface.

选择起始日期。

startDate = datenum('02-01-1962');

选择结束日期。

endDate = datenum('11-15-2012');

创建一个对应于开始和结束日期之间的年数的变量 xdata

xData = linspace(startDate,endDate,50);

绘制随机数据图。

figure
stem(xData,rand(1,50))

Figure contains an axes object. The axes object contains an object of type stem.

用 4 位数年份标记 x 轴,并使用 'keeplimits' 选项保留 x 坐标轴范围。

datetick('x','yyyy','keeplimits')

Figure contains an axes object. The axes object contains an object of type stem.

选择起始日期。

startDate = datenum('01-01-2009');

选择结束日期。

endDate = datenum('12-31-2009');

创建一个对应于开始和结束日期之间的月数的变量 xdata

xData = linspace(startDate,endDate,12);

绘制随机数据图。

figure
stairs(xData,rand(1,12))

Figure contains an axes object. The axes object contains an object of type stair.

XTicks 数设置为 xData 中的点数。

ax = gca;
ax.XTick = xData;

Figure contains an axes object. The axes object contains an object of type stair.

用月份名称标记 x 轴,并使用 'keepticks' 选项保留刻度总数。

datetick('x','mmm','keepticks')

Figure contains an axes object. The axes object contains an object of type stair.

输入参数

全部折叠

要用日期标记的轴,指定为 'x''y''z'

刻度线标签的格式,指定为符号标识符字符向量或对应于预定义格式的整数。

下表显示了可用于构造格式的符号标识符。可以使用连字符、空格或冒号等字符来分隔字段。例如,要显示月份日期后跟以三个字母缩写形式表示的星期几(在圆括号内),请使用 dateFormat = 'dd (ddd)'

注意

datetick 接受的字母标识符与 datetime 函数使用的标识符不同。

符号标识符

描述

示例

yyyy

完整年份

1990, 2002

yy

两位数年份

90, 02

QQ

使用字母 Q 和一个数字的季度年份

Q1

mmmm

使用全名的月份

March, December

mmm

使用前三个字母的月份

Mar, Dec

mm

两位数月份

03, 12

m

使用大写首字母表示月份

M, D

dddd

使用全名的日期

Monday, Tuesday

ddd

使用前三个字母的日期

Mon, Tue

dd

两位数日期

05, 20

d

使用大写首字母表示日期

M, T

HH

两位数小时
(使用符号标识符 AMPM 时无前导零)

05, 5 AM

MM

两位数分钟

12, 02

SS

两位数秒

07, 59

FFF

三位数毫秒

057

AM or PM

在表示时间的文本中插入的 AMPM

3:45:02 PM

下表列出了预定义的 MATLAB® 日期格式。

数值标识符

日期时间格式

示例

-1(默认值)

'dd-mmm-yyyy HH:MM:SS''dd-mmm-yyyy'(如果 'HH:MM:SS'= 00:00:00

01-Mar-2000 15:45:1701-Mar-2000

0

'dd-mmm-yyyy HH:MM:SS'

01-Mar-2000 15:45:17

1

'dd-mmm-yyyy'

01-Mar-2000

2

'mm/dd/yy'

03/01/00

3

'mmm'

Mar

4

'm'

M

5

'mm'

03

6

'mm/dd'

03/01

7

'dd'

01

8

'ddd'

Wed

9

'd'

W

10

'yyyy'

2000

11

'yy'

00

12

'mmmyy'

Mar00

13

'HH:MM:SS'

15:45:17

14

'HH:MM:SS PM'

3:45:17 PM

15

'HH:MM'

15:45

16

'HH:MM PM'

3:45 PM

17

'QQ-YY'

Q1-01

18

'QQ'

Q1

19

'dd/mm'

01/03

20

'dd/mm/yy'

01/03/00

21

'mmm.dd,yyyy HH:MM:SS'

Mar.01,2000 15:45:17

22

'mmm.dd,yyyy'

Mar.01,2000

23

'mm/dd/yyyy'

03/01/2000

24

'dd/mm/yyyy'

01/03/2000

25

'yy/mm/dd'

00/03/01

26

'yyyy/mm/dd'

2000/03/01

27

'QQ-YYYY'

Q1-2001

28

'mmmyyyy'

Mar2000

29

'yyyy-mm-dd'
(ISO 8601)

2000-03-01

30

'yyyymmddTHHMMSS'
(ISO 8601)

20000301T154517

31

'yyyy-mm-dd HH:MM:SS'

2000-03-01 15:45:17

提示

  • 要更改刻度间距和位置,请在调用 datetick 之前设置相应的坐标区属性(即 XTickYTickZTick)。

  • 调用 datetick 可将指定轴的 TickMode 设置为 'manual'。这意味着在缩放、平移或其他方式更改坐标轴范围后,您应再次调用 datetick 以更新刻度和标签。

  • 在 MATLAB 中使用日期时间的最佳方式是使用 datetime 值,它能提供比日期序列值更多的功能。使用 plot 函数绘制 datetime 值。使用 DatetimeTickFormat 名称-值对组参数修改坐标轴刻度标签的格式。

算法

datetick 调用 datestr 函数以将日期值转换为文本。

版本历史记录

在 R2006a 之前推出

另请参阅

|