LoginSignup
21
15

More than 3 years have passed since last update.

MATLABの図を論文に載せるに耐えうる外見にする

Posted at

はじめに

一般にプログラムを回した結果出力されるグラフはあくまで結果確認用でありそのままどこかに出せるものではないので外見の調整が必要になります。MATLABで出力される図も例にもれずお世辞にも綺麗とは言えません(超個人的感想)(異論は認める)。かといって図を取得するたびに外見を整えるのは非常に面倒なので楽にしたいと思いました。そんなすごいことはしてませんが数値計算屋さんの自分の備忘録兼卒論修論に臨むMATLABerさんたちに役立てばと思い書きました。

外見を整える関数

以下のような関数を作成しました。x軸(x)とプロットしたいデータ(data)を引数として与えます。

plotforpaper.m
function [] = plotforpaper(x, data)

p = plot(x,data,'LineWidth', 2);            %2ptでプロット

p(1).Color='r';
p(1).MarkerIndices = 1:100:length(data);    %100点ごとにマーカーを打つ
p(1).Marker='o';                            %マーカー記号
p(1).MarkerSize=7;                          %マーカーサイズ
p(1).MarkerFaceColor='w';                   %マーカー塗りつぶし
p(2).Color='b';
p(2).MarkerIndices = 1:100:length(data);
p(2).Marker='^';
p(2).MarkerSize=7;
p(2).MarkerFaceColor='w';

grid on;
axis([0, 10, -1.2, 1.2]);
xlabel('$x$', 'Interpreter', 'latex','FontSize',14);    %論文に合わせてTimes New Romanに&文字大きめ
ylabel('$y$', 'Interpreter', 'latex','FontSize',14);
legend('$\sin(x)$','$\cos(x)$', 'Interpreter', 'latex','FontSize',14);
ax = gca;
ax.XTick = 0:2:10;                      %x軸の目盛りは2ごと
ax.TickLabelInterpreter = 'latex';      %軸の書式
ax.FontSize = 14;                       %軸のフォントサイズ
ax.GridAlpha = 0.5;                     %グリッドの濃さ(0~1)
ax.MinorGridAlpha = 0;                  %細かいグリッドの濃さ(0~1)
ax.LineWidth = 0.7;                     %グラフ枠のライン幅

end

上の関数を通したもの↓
fig.png

初期のplot(x, data)に最低限のグリッド、凡例、軸の名前を追加したもの↓
initial.png
初期のままだと結果の確認には十分ですが対外的に出すには明らかにちゃっちいですね。

参考文献

https://jp.mathworks.com/help/matlab/ref/matlab.graphics.chart.primitive.line-properties.html
https://jp.mathworks.com/help/matlab/ref/matlab.graphics.axis.axes-properties.html

21
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
15