您的位置:控制工程论坛网论坛 » 自动化软件 » matlab以时间为坐标的设置

lxw19881017

lxw19881017   |   当前状态:离线

总积分:0  2024年可用积分:0

注册时间: 0001-01-01

最后登录时间: 0001-01-01

空间 发短消息加为好友

matlab以时间为坐标的设置

lxw19881017  发表于 2012/9/11 17:26:15      1038 查看 0 回复  [上一主题]  [下一主题]

手机阅读

 
这两天遇上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不会自己调整格式显示,就会出现刻度的重叠,以后解决了这个问题再写解决办法吧.
 
1楼 0 0 回复