Clear Filters
Clear Filters

Changing colors for findpeaks function

12 views (last 30 days)
Pushti Shah
Pushti Shah on 8 Sep 2022
Commented: dpb on 10 Sep 2022
I wanted to graph male and female find peaks graphs together and have the graphs be blue and pink. Is there any way for me to change the colors in the code itself?
[numRows,~] = size(male_data);
x = numRows;
[pk,loc] = findpeaks(male_data,x);
plot(x, y, '-', pk, loc, 'Color', [0.9414, 0.5664, 0.6055]); % is there any way to control color?
That was as close as I got but it is giving me an error. Male_data is an array.

Answers (1)

dpb
dpb on 8 Sep 2022
Sure, but not with the triplet form of plot to use anything except the named colors...
hL=plot(x,y,'-', pk,loc,'*'); % plot the two, default color first, save line handles
set(hL,'Color',[0.9414, 0.5664, 0.6055]) % now set the color triplet
  2 Comments
Pushti Shah
Pushti Shah on 10 Sep 2022
Edited: Pushti Shah on 10 Sep 2022
[numRows,~] = size(male_trans);
x = numRows;
y = (mean(male_trans(x)));
[pk,loc] = findpeaks(y,x);
hL = plot(x, y, '-', pk, loc);
set(hL,'Color',[0.4688, 0.6563, 0.9375])
^ I have this written but for some reason there's an error at the [pk,loc]
saying:
Error using findpeaks>parse_inputs (line 206)
Data set must contain at least 3 samples.
Error in findpeaks (line 136)
= parse_inputs(isInMATLAB,Yin,varargin{:});
dpb
dpb on 10 Sep 2022
Well, yes,..when you wrote
[numRows,~] = size(male_trans);
x = numRows;
y = (mean(male_trans(x)));
numRows is a single value and so, then, will be male_trans(x)) and even if you wrote male_trans(x,:)) to take the whole row, then mean(male_trans(x)) would turn it back into a single value anyway. Can't find a peak with only one point...

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!