我有1小时的数据。我现在的时间轴是数字形式
1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0
我想将其更改为时间格式,如
8:00,8:15,8:30,8:45,9:00
我可以在其中定义开始时间,结束时间和时间间隔。
我尝试使用datetick
和datenum
,但它不适用于我。我的时间数据是一个包含60000个元素(大小为1 * 6000)的矢量,而我的另一个测量矢量也具有相同的大小。
答案 0 :(得分:3)
为了获得最大程度的控制,您可以手动完成:
% Plot data
hours = linspace( 0, 2, 6000); % time base for plot
data = randn( size( hours ) ); % data for plot
plot( hours, data )
% Compute tick positions
tickPos = min( hours ) : 0.25 : max( hours ); % every quarter hour from start to finish
timeZero = datenum( 2015, 01, 09, 08, 00, 00 ); % measure from 8:00 this morning
timeStamps = timeZero + tickPos / 24; % datenum returns a value in units of days, so divide tickPos by 24 to convert from hours to days
timeStampStrings = cellstr( datestr( timeStamps, 'HH:MM' ) ); % or whatever format seems best
set(gca, 'xlim', hours( [ 1 end ] ), 'xtick', tickPos, 'xticklabel', timeStampStrings )
...但使用datetick
的正确方法是确保图的x轴以datenum
为单位:
plot( timeZero + hours / 24, data )
datetick( 'x', 'HH:MM' )