在MATLAB或倍频,我的数据有日期/时间值的格式如下:如何绘制在x轴的日期时间在MATLAB或倍频
12:00:34.626 AM 2017年2月26日
这是HH:MM:SS:SSS [A或P] M [M] M/DD/YYYY
我想在我的地块上使用它作为我的x轴,并且我尝试过使用datetick ,datenum和datestr,并没有能够得到任何人使用这种格式。
如何使用此格式化的值字符串来标记我的x轴数据点?
在MATLAB或倍频,我的数据有日期/时间值的格式如下:如何绘制在x轴的日期时间在MATLAB或倍频
12:00:34.626 AM 2017年2月26日
这是HH:MM:SS:SSS [A或P] M [M] M/DD/YYYY
我想在我的地块上使用它作为我的x轴,并且我尝试过使用datetick ,datenum和datestr,并没有能够得到任何人使用这种格式。
如何使用此格式化的值字符串来标记我的x轴数据点?
我会使用这些函数的组合,即datnum后跟datetick绘图后。
首先你的格式化字符串需要是'HH:MM:SS.FFF AM mm/dd/yyyy'。
请参见下面的,如果您需要更改格式: https://au.mathworks.com/help/releases/R2016b/matlab/ref/datenum.html#inputarg_formatIn
然后使用datetick转换成漂亮的格式上的情节。 https://au.mathworks.com/help/releases/R2016b/matlab/ref/datetick.html
所以单个数据点=情节,你可能有:
xdatestr=['12:00:34.626 AM 2/26/2017'; '12:00:34.626 PM 2/26/2017']
xdatenum=datenum(xdatestr,'HH:MM:SS.FFF AM mm/dd/yyyy')
plot(xdatenum,[0 1])
datetick(gca)
还要注意日期时间,就是做全独立的方式,并使用不同的格式字符串约定。 http://au.mathworks.com/help/matlab/ref/datetime.html
您可以使用以下格式:
d = datetime('12:00:34.626 AM 2/26/2017','InputFormat','hh:mm:ss.SSS a M/dd/yyyy')
结果:
d =
26-Feb-2017 00:00:34
,如果你还想看到第二的分数:
>> d.Second
ans =
34.626
对于存储在单元格数组中的多个日期字符串,只需替换字符串即可以上单元格数组。
然后,您只需编写plot(d,y)
(其中y
是您的数据),并以时间格式获取x轴。您可以通过使用DatetimeTickFormat
属性进一步自定义格式为:
plot(d,1,'DatetimeTickFormat','hh:mm:ss.SSS a M/dd/yyyy')
,你会得到:
另一个例子是这样的。
date={'12:00:34.600 AM 2/26/2017','12:00:34.700 AM 2/26/2017','12:00:34.800 AM 2/26/2017','12:00:34.900 AM 2/26/2017'};
timeFormat='HH:MM:SS.FFF AM mm/dd/yyyy';
xdatenum=datenum(date,timeFormat);
data=0:3;
plot(xdatenum,data)
datetick('x',timeFormat,'keepticks')
view([-20,90])
为了避免x ticks的重叠,我倾斜了一点。
您可以通过使用滴答属性来控制滴答的数量。
date={'12:00:34.600 AM 2/26/2017','12:00:34.700 AM 2/26/2017','12:00:34.800 AM 2/26/2017','12:00:34.900 AM 2/26/2017'};
timeFormat='HH:MM:SS.FFF AM mm/dd/yyyy';
xdatenum=datenum(date,timeFormat);
data=0:3;
plot(xdatenum,data)
datetick('x',timeFormat,'keepticks')
set(gca,'XTick',[min(xdatenum) max(xdatenum)])
set(gca,'XTickLabel',[date(1),date(end)])
在这里,我只做了两个滴答的最小日期和最大日期。
datetime没有在Octave中定义 –
我没有使用Octave。你写了MATLAB _or_ Octave。 – EBH