粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

MATLAB ラベルが図からはみ出る

matlabのデフォルトフォントサイズをいじると
plotyyなどの一部のラベルがはみ出るという報告を受けています。

時間がないのでまた今度に内容をリファインしますがとりあえず今回は話題提供をば。

仕様環境

環境というか以下の設定をデフォルトにstartup.mに入れています。

% スタートアップ
% directory
%cd 'C:\......' %起動ディレクトリの設定
% OpenGL
opengl software
% figure のデフォルトフォント設定
set(0, 'defaultAxesFontSize', 16);
set(0, 'defaultTextFontSize', 16);
set(0, 'defaultAxesFontName','Arial');
set(0,'defaultTextFontName','Arial');
% ブロックのデフォルトフォントを変更
set_param(0,'DefaultBlockFontSize',11);
set_param(0,'DefaultBlockFontName','Arial');
% ラインのデフォルトフォントサイズを変更
set_param(0,'DefaultLineFontSize',9);
set_param(0,'DefaultLineFontName','Arial');
% 注釈のデフォルトフォントサイズを変更
set_param(0,'DefaultAnnotationFontSize',16);
set_param(0,'DefaultAnnotationFontName','Arial');
%LINEwidth
set(0,'defaultLineLineWidth',1.75)

問題となるコード

以下のコードを実行します。

x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
figure % new figure
[hAx,hLine1,hLine2] = plotyy(x,y1,x,y2);
title('Multiple Decay Rates')
xlabel('Time (\musec)')
ylabel(hAx(1),'Slow Decay') % left y-axis
ylabel(hAx(2),'Fast Decay') % right y-axis

するとこうなる。
f:id:ossyaritoori:20160131013100p:plain
右のplotyyのラベルは愚かx軸のラベルもはみ出しそうです。

原因・解決法

時間があったらまた書きます。

  • フォントサイズを大きくしてしまうせいのようです。
  • 図を無理やり縮めるのも有効らしい。
set(ax(1),'Position', [0.13 0.11 0.775-.08 0.815]);
set(ax(2),'Position', [0.13 0.11 0.775-.08 0.815]);
% Original position was [0.13 0.11 0.775 0.815]
% Applied change in width: "-.08". Choose as desired

参考になりそうな所

stackoverflow.com
www.mathworks.com