【MATLAB第11期】#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改 日期间隔设置 日期标签或格式更改

简介: 【MATLAB第11期】#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改 日期间隔设置 日期标签或格式更改

【MATLAB第11期】#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改


绘图问题解决方案


修改前

修改后


1、导入数据方式(识别时间数据)


我们知道xlsread函数无法导入时间数据,会自动删除时间数据

导入时间数据,一般需要学习以下几个函数:


(1)importdata函数

(2)readtable函数

(3)其他方法(如双击EXCEL数据,直接界面导入对应格式数据)


2、案例展示


本次展示的是readtable函数,即把double数据转化为table表格数据。


(1)打开数据

T = readtable('data.xlsx');  %打开data数据


readtable有个缺点是导入的数据标题会系统默认。

进阶学习可以了解detectImportOptions函数,可以人工修改标题。


(2)定义时间和数据


data=table2array(T(:,2));
time=table2array(T(:,1));

需要将table数据转为double数据 ,需要用table2array函数。时间数据自动转化为datetime时间格式


(3)将时间数据转化为数值


x = datenum(time) ;

datenum函数很关键 。一般绘图,横坐标为转化后的数值,纵坐标为对应数据


(4)绘图


datetick('x','yyyy-mm-dd');%  这里可以替换 datetick('x', 20); 

时间格式yyyy-mm-dd自己定义,如年月可以为’yyyy-mm’

加上小时的话 ,可以私下学习一下datetick函数~

  set(gca,'XTick',x(1:1:size(x,1)))

这里是设置横坐标的间隔,可以防止时间太多,横坐标装不下去。 所以可以设置对应间隔,如1:5:N

set(gca,'XTickLabel',datestr(x(1:1:size(x,1)),'yyyy-mm-dd')  )

这里是设置横坐标时间的标签,与上面相同,间隔保持一致。

绘图代码如下:

figure()
  plot(x,data,'-ob','LineWidth',0.5); %
   datetick('x', 'yyyy-mm-dd');%  这里可以替换 datetick('x', 20); 
   set(gca,'XTick',x(1:1:size(x,1)))
   set(gca,'XTickLabel',datestr(x(1:1:size(x,1)),'yyyy-mm-dd')  )
  grid on
axis tight;
 xlabel("日期")
ylabel("值")
title("绘图结果 ")

完整代码

clc,clear;
% importdata
%opts = detectImportOptions('data.xlsx')
%opts.VariableNames=[{ '时间'} ,{'数量'}]
T = readtable('data.xlsx');
data=table2array(T(:,2));
time=table2array(T(:,1));
x = datenum(time) ;
%new_x=x(1):x(end);
figure()
  plot(x,data,'-ob','LineWidth',0.5);
   datetick('x', 'yyyy-mm-dd');
   set(gca,'XTick',x(1:1:size(x,1)))
   set(gca,'XTickLabel',datestr(x(1:1:size(x,1)),'yyyy-mm-dd')  )
  grid on
axis tight;
 xlabel("日期")
ylabel("值")
title("绘图结果 ")



相关文章
|
10月前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
569 1
|
10月前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
300 2
|
10月前
|
传感器 资源调度 算法
【数据融合】【状态估计】基于KF、UKF、EKF、PF、FKF、DKF卡尔曼滤波KF、无迹卡尔曼滤波UKF、拓展卡尔曼滤波数据融合研究(Matlab代码实现)
【数据融合】【状态估计】基于KF、UKF、EKF、PF、FKF、DKF卡尔曼滤波KF、无迹卡尔曼滤波UKF、拓展卡尔曼滤波数据融合研究(Matlab代码实现)
1051 0
|
9月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
353 0
|
9月前
|
存储 监控 并行计算
目标跟踪中常用点迹航迹数据关联算法的MATLAB实现
通过计算测量点与预测点之间的欧氏距离,选择最近邻点进行关联,适用于单目标跟踪场景。
|
9月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
770 0
|
9月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
1094 0
|
9月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
287 0
|
9月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
286 0
|
9月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
393 8

热门文章

最新文章