Plot 関数, MATLAB

5-7-2015 updated

基本事項

  1. 概要
  2. Option の使い方
  3. 軸ラベルなど関連する関数

 

ケーススタディ

  1. 2つの関数を重ねて描く

関連項目

 

関連するコマンド

  • grid
  • xlabel
  • ylabel
  • title



概要

 

MATLAB: データファイルの作成 で読み込んだ右の表のデータを使って,散布図を書いてみる。右下の図1のように,Workspace に4つの変数が読み込まれていることを確認して進める。

 

>> plot(A)

 

の形で散布図を表示するのが基本の形である。>> plot(Weight)  >> plot(Height) を試してみよう。この場合,x 軸の値は 1 - 12 になる。

 

>> plot(Weight, Height)

 

で2つの変数の散布図を書くことができる。

 

ここで,Weight は Height は変数であるが,plot 関数における引数 argument とも表現される。「引数とは,ある命令を実行するときに代入する値」のこと。Weight や Height は,それ自体としては変数であるが,関数を主体をして考えるときには引数ということになる。

Group Gender Weight Height
Smoke M 68.2 175
Smoke M 75.1 172
Smoke M 77.7 178
Smoke F 48.0 157
Smoke F 56.7 153
Smoke F 54.3 149
Non-smoke M 55.1 179
Non-smoke M 48.9 172
Non-smoke M 51.0 169
Non-smoke F 42.0 160
Non-smoke F 40.6 155
Non-smoke F 41.1 152

図1. Excel を読み込んだときのワークスペース



Option の使い方


>> plot(Weight,Height)

 

で表示される図2は何か変である。データポイントが線で繋がれており,軸の名前もない。そこで,plot 関数にオプションを追加することで,グラフの形式を整える。

 

>> plot(Weight,Height,'o')

 

オプションの追加は,このように ' ' を使う。o はプロットのシンボルを円で表すことを指定するオプションである。

 

2つ以上のオプション(たとえば o とシンボルの色を緑にする g)を同時に指定したい場合には,

 

>> plot(Weight,Height,'og')

 
のようにする。og でも go でも同じ結果が得られる。
 
 

図2. 体重と身長のプロット


Option 一覧


色の設定

  • b 青
  • r 赤
  • g 緑
  • c シアン
  • m マゼンタ
  • y 黄色
  • w 白
  • k 黒

シンボルの設定

  • . (dot)
  • x
  • o(オー)
  • +
  • *
  • s (square)
  • d (diamond)
  • v (triangle in this direction)
  • ^ (triangle in this direction)
  • < (triangle in this direction)
  • > (triangle in this direction)
  • p (pentagon)
  • h (hexagon)

線のタイプ

  • - 実線
  • : 点線
  • -. 鎖線
  • -- 破線
  • (none) 線なし

このほか,組み合わせられるオプションとして以下のようなものがある。実際に,色々組み合わせて図を描いてみると理解しやすいだろう。

 

ただし,これらは Handle Graphics によるオプションであり(1),一つの関数をプロットするときには有効だが,2つの関数を重ねてプロットするときには使えなかった。何か方法があるのだろうか?

  • linewidth
  • MarkerEdgeColor
  • MarkerFaceColor
  • MarkerSize

 

 



軸ラベルなどの関連する関数


plot 関数を実行すると,結果は Figure 1 として別のウィンドウで現れる。この Figure 1 をカレントフィギュア current figure と呼び,以下のような関数によって改変することができる。

 

たとえば,

 

>> grid on

 

とすると表にグリッドを追加することができる。上の体重と身長の図に,以下の関数で軸ラベルなどを追加してみる。

 

>> plot(Weight,Height,'ko')

>> grid on

>> xlabel('Weight')

>> ylabel('Height')

>> title('Correlation')

>> axis ([35,90,140,180])
 
 
 

 
MATLAB では,セミコロン ; を使うと,結果をいちいち表示せずに次の関数に移ることができるので,以上はまとめて
 

>> plot(Weight,Height,'ko');grid on;xlabel('Weight');ylabel('Height');title('Correlation')

 
と書くことができる。これなら,一発でこの図が表示される。

コメント: 0

References

  1. 小林 2014 (Book). 最新MATLABハンドブック 第5版. 秀和システム.