Azzera filtri
Azzera filtri

Changing colors for findpeaks function

12 visualizzazioni (ultimi 30 giorni)
Pushti Shah
Pushti Shah il 8 Set 2022
Commentato: dpb il 10 Set 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.

Risposte (1)

dpb
dpb il 8 Set 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 Commenti
Pushti Shah
Pushti Shah il 10 Set 2022
Modificato: Pushti Shah il 10 Set 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 il 10 Set 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...

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by