はじめに

MATLABは、数値解析だけでなく、データを可視化するための豊富なグラフィックス機能も備えています。その中でも代表的なのが、2次元プロット3次元プロットです。グラフを使うことで、データの特徴や変化の傾向を直感的に把握できます。本記事では、MATLABを使用した2次元および3次元プロットの基本をわかりやすく解説していきます。

キーワード例: MATLAB, 2次元プロット, 3次元プロット, plot, surf, mesh, 可視化

2次元プロットの基本

1. plot関数

2次元の折れ線グラフを描くときに最もよく使われるのが plot 関数です。

  • x と y のベクトルを渡すと、それに応じた折れ線グラフが表示されます。
  • 軸ラベルやタイトルを付けると、読み手にとって分かりやすいグラフになります。
x = 0:0.1:2*pi;             % x軸の値を0から2πまで0.1刻みで生成
y = sin(x);                 % xの値に対応するsin(x)を計算

plot(x, y);                 % xとyをプロットしてグラフを描画
title('正弦波のプロット');  % グラフのタイトルを設定
xlabel('x');                % x軸のラベルを設定
ylabel('sin(x)');           % y軸のラベルを設定
grid on;                    % グリッド線を表示

図1.2次元プロットの例①

2. 複数データの重ね描き

複数の系列(異なるデータ)を1つのグラフ上に重ねる場合は、plot 関数に複数の x, y ペアを渡します。

  • カラーやラインスタイルを指定すると、グラフがさらに見やすくなります。
  • legend 関数で凡例を表示すると、複数のラインが何を表すか分かりやすくなります。
x = 0:0.1:2*pi;                 % x軸の値を0から2πまで0.1刻みで生成
y1 = sin(x);                    % xの値に対応するsin(x)を計算しy1に格納
y2 = cos(x);                    % xの値に対応するcos(x)を計算しy2に格納

plot(x, y1, '-r', x, y2, '--b'); % x, y1を赤の実線(-r)、x, y2を青の破線(--b)でプロット
legend('sin(x)', 'cos(x)');      % 凡例を追加し、それぞれの系列を識別
title('複数系列のプロット');   % グラフのタイトルを設定
grid on;                        % グラフにグリッド線を表示

図2.2次元プロットの例②

3. subplotによる複数グラフの配置

一つの図の中に複数のグラフを並べたい場合は、subplot 関数を使います。

  • (m, n, p) で、m行×n列のレイアウトのうち p番目の領域を指定。
  • 上記例では、縦に2つのグラフを配置しています。
x = 0:0.1:2*pi;            % x軸の値を0から2πまで0.1刻みで生成
y1 = sin(x);               % xの値に対応するsin(x)を計算しy1に格納
y2 = cos(x);               % xの値に対応するcos(x)を計算しy2に格納

subplot(2,1,1);            % 図を2行1列に分割し、1番目の位置(上段)を選択
plot(x, y1, 'r');          % x, y1を赤色でプロット
title('sin(x)');           % 上段プロットのタイトルを「sin(x)」に設定

subplot(2,1,2);            % 図を2行1列に分割し、2番目の位置(下段)を選択
plot(x, y2, 'b');          % x, y2を青色でプロット
title('cos(x)');           % 下段プロットのタイトルを「cos(x)」に設定

図3.2次元プロットの例③

3次元プロットの基本

1. mesh, surf関数

3次元の表面プロットを行うための代表的な関数に、mesh と surf があります。いずれも (X, Y, Z) の3次元データを可視化します。

  • mesh はワイヤーフレームで表示、surf は塗りつぶしの表面を表示。
  • mesh(X, Y, Z) や surf(X, Y, Z) の引数として、同次元の行列 X, Y, Z を指定。
[X, Y] = meshgrid(-2:0.2:2); % -2から2までを0.2刻みでx, yのグリッド点を生成
Z = X.^2 + Y.^2;             % 各グリッド点 (X, Y) に対して Z = X^2 + Y^2 を計算

% メッシュプロット
figure;                      % 新しい図ウィンドウを作成
mesh(X, Y, Z);               % メッシュプロットを作成 (グリッド線のみの3Dプロット)
title('Meshプロット');       % プロットにタイトルを設定

% サーフェスプロット
figure;                      % 新しい図ウィンドウを作成
surf(X, Y, Z);               % サーフェスプロットを作成 (カラーマップ付きの3Dプロット)
title('Surfプロット');       % プロットにタイトルを設定

図4.3次元プロットの例①

2. 3D線プロット (plot3)

3次元座標上に線を描きたい場合は、plot3 関数を使います。

  • (x, y, z) の座標を結んで3次元空間上に線を描く。
  • 軸ラベルを明確にすると、どの軸が何を示しているか分かりやすくなります。
t = 0:0.1:10;                % 時間 t を 0 から 10 まで 0.1 刻みで生成
x = sin(t);                  % t に基づいて x = sin(t) を計算
y = cos(t);                  % t に基づいて y = cos(t) を計算
z = t;                       % t をそのまま z として使用

figure;                      % 新しい図ウィンドウを作成
plot3(x, y, z, 'LineWidth', 2); % x, y, z を3次元プロット(線の太さを指定)
grid on;                     % グリッド線を表示
xlabel('x');                 % x軸のラベルを設定
ylabel('y');                 % y軸のラベルを設定
zlabel('z');                 % z軸のラベルを設定
title('3D線プロット(らせん状)'); % グラフのタイトルを設定

図5.3次元プロットの例②

3. カラーマップや視点変更

3次元プロットでは、カラーマップを変更したり、視点を回転させたりして、見やすい表示を工夫することが多いです。

  • colormap 関数で色の設定を変更。jet, parula, hot など多様なスタイルから選択可能。
  • view(az, el) で視点の方向を設定(azimuth, elevation)。
  • shading interp などで表面の描画方法を調整。
[X, Y] = meshgrid(-2:0.2:2); % -2から2までを0.2刻みでx, yのグリッド点を生成
Z = X.^2 + Y.^2;             % 各グリッド点 (X, Y) に対して Z = X^2 + Y^2 を計算

surf(X, Y, Z);        % X, Y, Z データを使ってサーフェスプロットを描画
colormap('jet');      % カラーマップを 'jet' に設定(青から赤のグラデーション)
shading interp;       % 補間処理を有効にしてサーフェスを滑らかに表示
colorbar;             % サーフェスに対応するカラーバーを表示
view(45, 30);         % 視点を (方位角=45°, 仰角=30°) に設定

図6.3次元プロットの例③

2次元・3次元プロットの比較表

様々なプロット方法をまとめると、以下のようになります。

分類関数名用途・特徴
2次元plot折れ線グラフを描く
scatter散布図
bar棒グラフ
histogramストグラム
3次元plot33D空間上にラインを描く
meshワイヤーフレーム状に3次元表面を描く
surf塗りつぶしの3次元表面を描く
contour33次元等高線図

まとめ

2次元・3次元プロットを使いこなすことで、データの特徴を視覚的に理解しやすくなります。特に3次元プロットでは、数値が示す意味を直感的に把握できる場面が多いでしょう。MATLABの強力な可視化機能を上手に活用して、データ解析やプレゼンテーションに役立ててみてください。

  • 2次元プロット: plot, subplot, scatter などを使ってさまざまな可視化が可能
  • 3次元プロット: mesh, surf, plot3 などで多彩な立体表示を実現
  • カラーマップや視点変更を駆使すると、より分かりやすいグラフを作れる

さらなる学習リソース

  • MathWorks公式サイト (日本語)
  • MATLABヘルプ「Creating 2-D Plots」(英語版: 2-D Plots)
  • MATLABヘルプ「Creating 3-D Plots」(英語版: 3-D Plots)

キーワード再掲: 2次元プロット, 3次元プロット, MATLAB, plot, surf, mesh, 可視化