读取北京碳价格数据并绘图
提取时间范围是15.06.2021-23.06.2021
clc clear close all %读取表 ixt = readtable('icap-graph-data-19-03-2019.csv'); %提取表格变量名序列 ixt_var = ixt.Properties.VariableDescriptions; %提取表格第一个变量名 ixt_varout1 = ixt_var{1}; %将表达式存入变量中 order1 = sprintf('ixtvar1 =ixt.%s;',ixt_varout1); %计算表达式 eval([order1]); %选择列 t = ixt.Beijing; %处理异常代号 row = strcmp(t, '#N/A')==1; t(row)={0}; %去掉前4行 begin_flag = 5; out = t(begin_flag : end); o1 = string(out); %丢失数据处理 row2 = ismissing(o1); o1(row2) ='0'; %千分位处理 o2 = strrep(o1,',','.'); %字符串转为数据 o2 = double(o2); o3_flag = o2>0; o3 = o2(o3_flag); %规定时间范围 findx1 = find(ixtvar1 =='01.01.2015'); findx2 = find(ixtvar1 == '23.06.2021'); outall = o2(findx1 - begin_flag + 1 : findx2 - begin_flag + 1); outall_text = ixtvar1(findx1 : findx2); %绘制图形 figure(1) plot(outall_text,outall); xlabel('年份') ylabel('碳价格/CNY') ylim([0 max(outall)]) %暂停1秒 pause(1) %取价格大于0部分 outall2 = outall(outall>0); outall2_text = outall_text(outall>0); %绘制图形 figure(1) plot(outall2_text,outall2); xlabel('年份') ylabel('碳价格/CNY') ylim([0 max(outall2)]) %暂停1秒 pause(1) %限制时间段 findx1 = find(ixtvar1 =='15.06.2021'); findx2 = find(ixtvar1 == '23.06.2021'); outdata = o2(findx1 - begin_flag + 1 : findx2 - begin_flag + 1); outdata_text = ixtvar1(findx1 : findx2); outdata2 = outdata(outdata>0); outdata2_text = outdata_text(outdata>0); figure(2); plot(outdata2_text,outdata2) xlabel('日期') ylabel('碳价格/CNY') ylim([0 max(outdata)])
警告: 在为表创建变量名称之前,对文件中的列标题进行了修改,以使其成为有效的 MATLAB 标识符。原始列 标题保存在 VariableDescriptions 属性中。 将 'VariableNamingRule' 设置为 'preserve' 以使用原始列标题作为表变量名称。