#author("2018-07-25T22:04:56+09:00","default:Miyashita","Miyashita")
#author("2019-12-21T01:08:08+09:00","default:Miyashita","Miyashita")
*タイトルの位置を調整する [#m639455c]
2次元平面図に関する記述です.~
#codeprettify(lang-matlab){{
ti = title('hogehoge')
}}
とtitleのハンドルを取得するとわかるが,titleはただのTextオブジェクトである.~
legendのLocationのような位置指定はできない.~
Positionで位置を指定するため,まずは各軸の幅を取得しておく.
と title のハンドルを取得するとわかるが,title はただの Text オブジェクトである.~
legend の Location のような位置指定はできない.~
Position で位置を指定するため,まずは各軸の幅を取得しておく.
#codeprettify(lang-matlab){{
% 方法1
ax = gca;
xrange = ax.XLim(2)-ax.XLim(1);
yrange = ax.YLim(2)-ax.YLim(1);
}}
または下記のようにaxisを使う手もある.
または下記のように axis を使う手もある.
#codeprettify(lang-matlab){{
% 方法2
xylim = axis;
xrange = xylim(2)-xylim(1);
yrange = xylim(4)-xylim(3);
}}
次に,表示したい位置をratio_x,ratio_yとして設定し,
次に,表示したい位置を ratio_x,ratio_y として設定し,
#codeprettify(lang-matlab){{
px = ax.XLim(1)+ratio_x*xrange;
py = ax.YLim(1)+ratio_y*yrange;
}}
とする.これで,図の左下からの相対位置をxy座標に変換できた.~
とする.これで,図の左下からの相対位置を xy 座標に変換できた.~
この座標を中心にした配置とするため,
#codeprettify(lang-matlab){{
set(ti,'HorizontalAlignment','center','VerticalAlignment','middle')
}}
と指定する.あとは,
#codeprettify(lang-matlab){{
set(ti,'Position',[px py 0]) % または
ti.Position = [px py 0];
}}
で移動完了.~
ratio_x,ratio_yをともに0.5とすると,図の真ん中の真ん中にタイトルがくる.~
ratio_x, ratio_y をともに0.5とすると,図の真ん中の真ん中にタイトルがくる.~
0.0未満,1.0以上にすると図の外部になる.~
図中に入れる場合は,
#codeprettify(lang-matlab){{
set(ti,'BackgroundColor','w','EdgeColor','k')
}}
で塗りつぶして,枠囲みをした方が良いかもしれない.

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes