필터 지우기
필터 지우기

plot multiple points in multiple colors

조회 수: 1 (최근 30일)
ankita
ankita 2014년 3월 5일
댓글: Muhammad Imran 2014년 3월 5일
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
Patrik Ek
Patrik Ek 2014년 3월 5일
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 2014년 3월 5일
If the data is of differrent in dependenta variable and you wish to plot in same figure you can use command (plotyy)

댓글을 달려면 로그인하십시오.

답변 (1개)

Paul
Paul 2014년 3월 5일
편집: Paul 2014년 3월 5일
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.

카테고리

Help CenterFile Exchange에서 Two y-axis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by