Plot a line over spectrogram

11 次查看(过去 30 天)
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.

采纳的回答

Jeremy
Jeremy 2014-1-6
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 个评论
Pegah Hosseini
Pegah Hosseini 2014-1-6
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);

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Time-Frequency Analysis 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by