読者です 読者をやめる 読者になる 読者になる

Matlabで2次元プロット

論文に載せる2次元プロットを作成するとき、僕はMatlabを使って以下のような感じで書いています。多次元尺度法の分析結果を図にするときに相性がいいですよ。

背景になる部品から順番に重ねていく必要があるので、まずは縦軸と横軸を書きます。grid onでグリッドを書いてもいいのですが、僕はシンプルなプロットが好みなので自分でline命令を使って書いてしまいます。テキストの上にマーカーを置いてしまうことがないように、まずマーカーをすべて書きそれからテキストを載せていきます。最後に軸のラベルやタイトルを付け、EPSファイルとして保存します。LaTeXから使いやすいのでEPSにしていますが、プレゼン画面を作るときにはPNGも使います。

% sample data
randn('state', 8);
A = randn(10,2);

figure;
hold on;

% draw axes
h = line([-3 +3], [0 0]);
set(h, 'Color', 'k');
set(h, 'LineStyle', '--');
h = line([0 0], [-3 +3]);
set(h, 'Color', 'k');
set(h, 'LineStyle', '--');

% draw markers
h = plot(A(:,1), A(:,2), 'ko');
set(h, 'MarkerSize', 24);
set(h, 'MarkerFaceColor', 'k');

% draw text on the markers
for n=1:length(A)
  h = text(A(n,1), A(n,2), num2str(n));
  set(h, 'FontSize', 18);
  set(h, 'Color', 'w');
  set(h, 'HorizontalAlign', 'center');
  set(h, 'VerticalAlign', 'middle');
end

% global things
box on;
axis equal;
set(gca, 'FontSize', 12);
title('hoge');
xlabel('absissa');
ylabel('ordinate');
set(gca, 'XLim', [-3 +3]);
set(gca, 'YLim', [-3 +3]);
hold off;
print('-depsc2', 'hoge.eps');