我正在研究这个项目,我的目标是在图表上绘制每秒BPM并在点到点之间更改图表的颜色。
我有一个包含数据的CSV文件,此时我可以绘制BPM与时间图表。但是,我的下一个目标是为不同的区域更改此图表的颜色。
我已将CSV文件中的LED颜色定义为红色,b绿色,c黄色和d-蓝色。样本数据如下:
秒BPM LED
1 64 a
2 140 c
3 162 d
4 110 b
5 11 112 b
6 145 c
7 146 c
8 149 c
9 145 c
10 60 a
这是我目前拥有的用于绘制BPM与时间的图表的代码。现在我必须根据CSV文件中的LED字母更改颜色。
ftoread = 'DATALOG.CSV';
fid = fopen(ftoread); %OPENS the CSV file
data = textscan(fid,'%f%f%f%c','Headerlines',1,'Delimiter',',');
fclose(fid); % closes the file
Time = data{1}; %Time variables moved to new variable called x
BPM = data{2};% Readings moved to variable y
LED= data{3};
plot(Time,BPM, 'r'); % plot bp readings vs time
xlabel('Time of Reading');
ylabel('Blood Pressure Reading & Speed');
title('Blood Pressure Readings vs Time');
答案 0 :(得分:0)
如果你不想使用分散,你可以这样做
LED = [1 3 4 2 2 3 3 3 3 1];
colors = ['r', 'g', 'b', 'y']; % A color for each LED
Time = [1:10];
BPM = [64 140 162 119 112 145 146 149 145 60];
figure; hold all;
i = 1;
j = 2;
last_LED = LED(i);
for j=2:numel(LED)
if LED(j) ~= last_LED
plot(Time(i:j), BPM(i:j), colors(last_LED));
last_LED = LED(j);
i = j;
end
end