学校联系我们网站制作,哪个网站做废旧好,网站菜单实现原理,怎么宣传自己的平台平时研究需要大量的绘图Excel有时候又臃肿且麻烦 尤其是当处理大量数据时可能会拖死Windows 
示例代码及数据量展示   因为数据量是万级别的折线图也变成柱状图了, 不过还能看出大致趋势! 横轴是时间纵轴是传感器数值图例是传感器所在深度 
% data  readtable(C:\U…平时研究需要大量的绘图Excel有时候又臃肿且麻烦 尤其是当处理大量数据时可能会拖死Windows 
示例代码及数据量展示   因为数据量是万级别的折线图也变成柱状图了, 不过还能看出大致趋势! 横轴是时间纵轴是传感器数值图例是传感器所在深度 
% data  readtable(C:\Users\sdgs\滨大近一个月数据.xlsx)% 获取所有的depth值
sensorCodes  unique(data.depth);% 获取所有的时间戳
timestamps  unique(data.id);% 创建一个图形
figure;
hold on;% 遍历每个depth
for i  1:length(sensorCodes)code  sensorCodes(i);% 创建一个过滤器只选择当前depth的数据filter  data.depth  code;% 获取当前depth的数据codeData  data(filter, :);% 创建一个向量来存储当前depth的humidityhumidityValues  zeros(1, length(timestamps));% 遍历每个时间戳for j  1:length(timestamps)timestamp  timestamps(j);% 在当前时间戳上获取对应的humidity值filter  codeData.id  timestamp;humidity  codeData(filter, :).humidity;% 如果有对应的humidity值则保存到humidityValues中if ~isempty(humidity)humidityValues(j)  humidity;endend% 绘制曲线plot(timestamps, humidityValues, DisplayName, [depth:  num2str(code)]);
endxlabel(时间);
ylabel(数值);
legend(show);
title(不同depth的曲线图);hold off; 
代码中都有注释, 可以直接执行也可以往下看 画图横轴时间纵轴数值按照不同sensorCode分组画不同sensorCode的曲线 
思路大致就是两次for循环的遍历, 因为要目标值还要进行分组 第一次遍历是要分的组就是代码中的depth ,第二次遍历就是拿到这个depth在对应时间的值 
在一开始我们遍历了Excel中的数据, 应该叫读取了更加合适 
然后取出相关的值并用unique进行去重 
接着就是卡住的地方 用到了过滤器的概念, 对数据过滤后拿过滤玩的数据获取目标值, 然后初始化一个向量长度设置和X轴一致, 这样可以避免越界异常 
下标索引必须为正整数类型或逻辑类型。出错 table/dotParenReference (line 82)b  b(rowIndices);出错 plotLine (line 19)time  data.id(idx);然后开始根据depth, 遍历时间戳如果有值就塞到中间变量中 
总结: 外部循环遍历depth内部循环根据时间戳遍历值并用变量做存储! 
等到值都有变量存了就可以拿变量进行绘图了 这一步往往会遇到类型的问题,因为plot只能绘制数字类型, 如果数据中有字母活其他字符 , MATLAB会给这个数据加上引号或者其他修饰这样绘图时就会有报错 
细节 
生成的默认的图例很难分辨, 这时候就要在结果上做文章了 
1-设置图例的样子 
plot(x, y1, -rO)绘制以 x 为横轴y1 为纵轴的曲线线型为实线‘-’颜色为红色‘r’标记为圆圈‘O’。plot(x, y2, -kX)绘制以 x 为横轴y2 为纵轴的曲线线型为实线‘-’颜色为黑色‘k’标记为叉号‘X’。plot(x, y3, :b*)绘制以 x 为横轴y3 为纵轴的曲线线型为点线‘:’颜色为蓝色‘b’标记为星号‘*’。  
2-设置背景色比较懒就都用上面这一个图了 set(lg1,‘TextColor’,‘red’,‘Color’,‘yellow’);