Azzera filtri
Azzera filtri

plot multiple points in multiple colors

1 visualizzazione (ultimi 30 giorni)
ankita
ankita il 5 Mar 2014
Commentato: Muhammad Imran il 5 Mar 2014
I am trying to plot the peaks and their harmonics. Figure 5 plots the peaks between 0-135 Hz and figure 6 plots the peaks and their harmonics between the normal frequency range i.e. 0-2000 Hz.
The first part of Figure 6 plots normal graph between freq_s(0-2000 Hz) and Signal_fft_hilbert. I want to plot xx2 peaks on this plot. I am not able to draw this plot. I want to mark these points in different colors for each 'k'.Also I am getting error with regards to size of freq_s and xx2. Can somebody suggest anything?
figure(5)
ind = (freq_s>=0 & freq_s<= 135); %// logical index to select desired range
[peaks, locs] = findpeaks(abs(Signal_fft_hilbert(ind)))
plot(freq_s(locs),abs(Signal_fft_hilbert(locs)))
hold on
plot(freq_s(locs),peaks,'*g')
for k=1:length(peaks)
z=z+1;
top1{k}=freq_s(locs(k));
for s1=1:length(peaks)
xx{s1}=top1{k}*s1;
end
[xx1]=[xx(:)]
xx2=cell2mat(xx1);
figure(6)
plot(freq_s(2:250),abs(Signal_fft_hilbert(2:250)))
hold on
plot(freq_s,xx2,'*g')
end
  4 Commenti
Patrik Ek
Patrik Ek il 5 Mar 2014
You must have two vectors of the same size when using plot. Try to filter the point you need from each vector and make sure to have the same size of them.
Muhammad Imran
Muhammad Imran il 5 Mar 2014
If the data is of differrent in dependenta variable and you wish to plot in same figure you can use command (plotyy)

Accedi per commentare.

Risposte (1)

Paul
Paul il 5 Mar 2014
Modificato: Paul il 5 Mar 2014
col=1:numel(peaks);
scatter(freq_s(locs),peaks,[],col)
You can specify the size of the circles where [] is. Im not sure what xx2 is supposed to be. But if you want to plot that replace peaks with xx2.

Categorie

Scopri di più su Two y-axis in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by