display rectangle on top of plotyy

조회 수: 3 (최근 30일)
Sebastian Roehn
Sebastian Roehn 2016년 3월 25일
댓글: Mike Garrity 2016년 3월 25일
Hello community,
I would like to draw a rectangle on top of a plotyy. But the second plot data are always on top of the rectangle. I tried it with uistack, but that isn't working. Here is a small example...
[axh,hLine1,hLine2] = plotyy(1:100,randn(100,1),1:100,randn(100,1));
h = rectangle('Position',[1,0,20,3],'LineWidth',2);
% rectangle on top
uistack(h,'top')
uistack(hLine2,'down')
I really appreciate any help you can provide.
Greetings Sebastian

채택된 답변

Mike Garrity
Mike Garrity 2016년 3월 25일
The first return value from plotyy (axh in your case) is an array of two handles. Try putting the rectangle in the other one. In other words, this:
[axh,hLine1,hLine2] = plotyy(1:100,randn(100,1),1:100,randn(100,1));
rectangle(axh(1),'Position',[1,0,20,3],'LineWidth',2)
is different from this:
[axh,hLine1,hLine2] = plotyy(1:100,randn(100,1),1:100,randn(100,1));
rectangle(axh(2),'Position',[1,0,20,3],'LineWidth',2)
  댓글 수: 2
Sebastian Roehn
Sebastian Roehn 2016년 3월 25일
Hello Mike,
thank you for your answer. But that isn't working, because you cannot specify an axes handle on a rectangle. You get this error:
Error using rectangle
Can't specify convenience arg for this object
Error in plotyy_rectangle (line 2)
h = rectangle(axh(2),'Position',[1,0,20,3],'LineWidth',2);
But your answer brought me to this solution:
hfig = figure(1);
[axh,hLine1,hLine2] = plotyy(1:100,randn(100,1),1:100,randn(100,1));
set(hfig,'CurrentAxes',axh(2))
h = rectangle('Position',[1,0,20,3],'LineWidth',2);
Greetings Sebastian
Mike Garrity
Mike Garrity 2016년 3월 25일
Sorry, I think that the 1st arg for rectangle was added in R2016a. It's just shorthand for a form that's been around for a long time:
rectangle('Position',[1,0,20,3],'LineWidth',2,'Parent',axh(2))
Most of the graphics objects take that first arg form. We've recently been going through and adding it to the ones which didn't have it.

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

추가 답변 (0개)

카테고리

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