设置时间轴
ts=datenum('1999-01-01 00:00:00');% 开始时间
tf=datenum('1999-01-01 00:20:00');% 结束时间
y=rand(21,1);% 给出你的y值,我这里随机给了
t=linspace(ts,tf,21);% 21min为总共的时间
plot(t,y);% 调用datetick函数直接生成时间坐标
datetick('x','HH:MM','keepticks')
使用Matlab可以方便地绘制时间序列,但是设置时间轴可能会有些困难,特别是次级刻度和标签位置的设置。因此,使用GMT绘制时间序列可以更方便地绘制次级月标签。
第一节:时间序列
绘制时间序列,手动调整坐标刻度,一年为一个主刻度(main ticks),一月为一个次刻度(minor ticks),并且绘制Y坐标的grid。
具体步骤如下:
1、首先是准备好规则数据。如果数据格式是matlab处理和存储的矩阵格式,使用MATLAB则需要提取出来时间序列,并保存为ASCII格式数据。注意此时的数据不带有时间信息,只是简单的一列数据而已,我们将在在后面添加时间信息。
2、为sigma0数据添加时间列[h2]
这个方法不是固定的,可以自己编程实现,也可以使用已有的简单程序。注意时间数据的格式是固定的几种。
如果数据不多的话,可以使用Windows自带的excel添加。
本例子的最终数据格式如下:第一列是时间,第二列到第四列是sigma0的属性值,
(time,sigma0Ku,sigma0C,sigma0C-Ku)。
3、GMT绘图
将三列sigma0的数据放到一幅图上,即同时绘制三条时间序列,且使用同一个坐标系。横坐标为年月,具体设置为:年为大刻度,月为小刻度,界限设置为1993.1.1-2004.12.1。竖坐标为sigma0的值,范围可当已知,设置为0-15。
参考GMT Cookbook中的程序21:
GMT中Time格式需要按照数据的时间格式设置。在GMT的帮助文件中可以找到,有格里高利,ISO之类。还要区分输入的时间格式和输出的时间格式。
选择例21中使用的时间标准dd-o-yy。(GMT有细致的时间设置参数,注意在这一步别出错误。)
注意:数据文件中时间序列的日期坐标可以和标注的日期坐标格式不一样,但是时间上要一致。
一看就知道是复制的
如果想在symbian中使用jpg或者png图片,则需要用到symbian提供的那个Multimedia ICL库里的类了。其中比较重的是CImageDecoder类,提供了对图像进行解码的功能。
来看看如何使用它的吧。先定义两个字串:
_LIT(KJPEGFile,"C:\Data\me.jpg");
_LIT(KJPEGType,"image/jpeg");
使用的代码比较简单,如下所示:
iDec = CImageDecoder::FileNewL(iRFs,KJPEGFile);
iParent->iBkImageMask=new (ELeave) CFbsBitmap();
iParent->iBkImageMask->Create( iDec-> FrameInfo().iOverallSizeInPixels,iDec-> FrameInfo().iFrameDisplayMode );
iDec->Convert( &iStatus, *(iParent->iBkImageMask) );
其中的iDec是CImageDecoder的实例,而iRFs是RFs的实例。而iParent->iBkImageMask则是一个CFbsBitmap对象实例。
也就是说,我们先利用CImageDecorder::FileNewL来打开一个图像文件(它会自已判断图像类型,我们也可以提供给它我们指定的图像类型)。然后这个图像的信息就保存在iDec->FrameInfo()中了,利用这个信息可以创建一个CFbsBitmap实例(因为symbian中所有显示的图像都是这种类型)。最后,调用CImageDecorder的异步函数Convert就可以将图像(jpeg 或者png格式的)转换成CFbsBitmap位图了。唯一的麻烦是Convert是一个异步函数,第一个参数是TRequestStatus类型(可以是一个活动对象的iStatus成员)。
除了CImageDecorder::FileNewL以外还有一个CImageDecorder:;DataNewL也可以用来从一个缓冲区的字节内容构造出图像数据,只是它第二个参数是TDesC8&类型的aSourceData。
[补充]
别忘了包括头文件 ImageConversion.h,还有引入库imageconversion.lib。
可以使用附加参数指定保持原坐标轴范围:
datetick('x','yyyy-mm-dd','keeplimits')如果坐标轴的Tick不满意,可以要保持原有Tick:
datetick('x','yyyy-mm-dd','keepticks')但原来的Tick有可能不适合日期格式,那么,可以考虑在调用datetick之前,先设置你认为合适的Tick,例如:
DateString = {'06/1/2014';'10/1/2014';'02/1/2015';'06/1/2015'};
formatIn = 'mm/dd/yyyy';
set(gca,'xtick',datenum(DateString,formatIn))
datetick('x','yyyy-mm-dd','keepticks')不过这样做有点太繁琐,还不如直接设置TickLabel了。
以上是在MATLAB中如何调整scope的时间轴设置的详细内容。更多信息请关注PHP中文网其他相关文章!