axis position and insets

4 ビュー (過去 30 日間)
Chad Greene
Chad Greene 2014 年 8 月 19 日
回答済み: Chad Greene 2014 年 8 月 20 日
I am having trouble getting insets to match the dimensions of my figure window. For any given figure I'd like to get the current position of axes and pin an inset to the upper left corner. Here is what I have tried:
gp = get(gca,'position');
axes('position',[gp(1) gp(2)+(.75)*gp(4) .25*gp(3) .25*gp(4)])
Unfortunately, this doesn't snap to my current figure axes:
I can manually adjust the figure size after plotting the inset and then it looks good:
But the manual solution is clunky and unrepeatable. Is there a way to get this inset pinned a little better?
  2 件のコメント
dpb
dpb 2014 年 8 月 19 日
Seems to work here if just use the above.
Any chance you've got a container that causes the position to be relative to it instead?
Otherwise, think need more detail to reproduce the problem/symptoms.
Chad Greene
Chad Greene 2014 年 8 月 20 日
Ah, you're right, dpb, it does work with plain xy axes, but I am working with map axes. Unfortunately, there is no getm(gcm,'position'). Is there some equivalent? Matlab must know where it's putting those map axes.

サインインしてコメントする。

採用された回答

Chad Greene
Chad Greene 2014 年 8 月 20 日
I found a perfect solution provided by Kelly Kearney. It's a wonderfully-written function and the syntax is straightforward:
gp = plotboxpos(gca);
axes('position',[gp(1) gp(2)+(.75)*gp(4) .25*gp(3) .25*gp(4)])

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAxis Labels についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by