Plot a line over spectrogram

19 views (last 30 days)
Pegah Hosseini
Pegah Hosseini on 18 Jul 2013
Commented: Pegah Hosseini on 6 Jan 2014
I use the following code to plot a line over my spectrogram so that I show the onset time. But it sometimes plots the line over the spectrogram and sometimes the spectrogram over the line (the line is there from y=0 to y=10 then not there from y=10 to y=20 and then again it is there from y=20 to y=30). Any suggestions?
figure surf(x,y,z,'edgecolor','none'); axis tight; view(0,90); colorbar set(gca,'fontsize',14) hold on h=line([0 0],[y(1) y(end)],'color','m','Linestyle','-','LineWidth',2); uistack(h,'top')
I also tried:
h=get(gca,'Children'); set(gca,'Children',h(end:-1:1))
or
set(gca,'Children',h(1:end))
but no luck. All tries give exactly the same result.

Accepted Answer

Jeremy
Jeremy on 6 Jan 2014
I've done this before, I believe the trick is to set the Z-value for your line so that is always above the spectrogram.
  1 Comment
Pegah Hosseini
Pegah Hosseini on 6 Jan 2014
Although this question goes back to July, I am still happy to learn something new. Thanks alot for your help. It works perfectly. Example:
X=-2:10;Y=-2:10;Z=randn(13,13)*2;
surf(X,Y,Z,'edgecolor','none');
axis tight;
view(0,90);
hold on
zm=max(max(Z));
zmm=repmat(zm,1,length(Y(1):Y(end)));
h=plot3(zeros(1,length(zmm)),Y(1):Y(end),zmm,'-m','LineWidth',2);

Sign in to comment.

More Answers (0)

Categories

Find more on Time-Frequency Analysis in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!