这两天遇上matlab在做图时没有办法将时间做为坐标显示出来的问题,查了查help文档,终于能显示了.
首先取出数据表中的数据,现在只举例说明.
假设有这么些数据:
% ('1899-12-30 00:00:00','21','瓦斯','1.11',
% '1899-12-30 00:03:00','21','瓦斯','0.92',
% '1899-12-30 00:06:00','21','瓦斯','0.88',
% '1899-12-30 00:09:00','21','瓦斯','0.88',
% '1899-12-30 00:12:00','21','瓦斯','0.89',
% '1899-12-30 00:15:00','21','瓦斯','0.77',
% '1899-12-30 00:18:00','21','瓦斯','0.78',
% '1899-12-30 00:21:00','21','瓦斯','0.81',
% '1899-12-30 00:24:00','21','瓦斯','0.81';
要画第一列和第四列的曲线.
如果数据从数据库里直接取出可以以列的形式取,现在构造这样一些数据.
最主要的有两个函数,datenum和datetick.
datenum会把时间格式转换为数字方便绘图.
datetick可以设置x轴的显示方式.
运行结果如下图所示:
如果要改变x轴显示的步长,可以用set命令.
set(gca,'xtick',[min:步长:max]);
选择合适的min,步长,max时,可以查看横坐标x里的值.
如果将程序里加上一句:
set(gca,'xtick',[693953:0.004:693953.01]);
那么显示结果如下:
如果只想显示小时分钟秒数,那么可以使用datetick的第14种显示样式.
datetick('x',14)
set(gca,'xtick',[693953:0.0024:693953.009]);
运行结果如下:
还有一个问题没有解决,在显示的时候如果步长太短,而时间格式又太长,matlab不会自己调整格式显示,就会出现刻度的重叠,以后解决了这个问题再写解决办法吧.