Pythonの画像描画ライブラリ「Matplotlib」の、機械学習で使われる典型的なグラフ機能Pythonで始める機械学習入門(5)(2/3 ページ)

» 2017年11月02日 05時00分 公開
[加藤公一シルバーエッグ・テクノロジー]

曲線の描画

 次に、曲線を描いてみます。曲線を描くには点の刻みを細かくして折れ線を描きます。「np.linspace」を使うと、指定した区間を等分した点を指定した数だけ得られるので、これを使います。ここでは「sin」「cos」のグラフを描いてみます。

 ここでは1つのパネルの上に2つのグラフを描きました。このようにplt.plotを二度呼ぶと自動的に色を分けて描画してくれます。ここで「np.linspace(-5,5,300)」は、下記の範囲を等分して300個の点を取得するという意味です。

曲線と曲線の間を塗りつぶすfill_betweenメソッド

 次に、この曲線と曲線の間を塗りつぶしてみます。2つのグラフの間を塗りつぶすには「plt.fill_between」を使います。

 plt.fill_betweenの名前付き引数whereは塗りつぶすための条件を表しています。y1とy2は両方とも一次元配列が入っているので、「y1>=y2」はブロードキャストされます。つまり各点でy1とy2のどちらが大きいかによってTrue/Falseの配列になります。

塗りつぶす色を表す、名前付き引数「color」

 次の名前付き引数「color」は塗りつぶす色を表します。色の指定で「r」は赤(red)を、「b」は青(blue)を意味します。このようによく使われる色は一文字で指定できます。一文字で指定できる色には次のようなものがあります。

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

 また、これらの他にも「#808080」のようなRGB文字列も指定でき、上記一文字指定以外にも例えば「darkgreen」「skyblue」などの名称による指定もできます。色の指定で使える文字列は、Matplotlibのページを参照してください。

グラフの装飾を変える

 次に、グラフの装飾を変えてみます。

凡例を表示するには

 まずはplt.plotに「label」という引数が増えています。このlabelで指定した文字列が右上の凡例として表示され、それぞれのグラフが何を示すかを明示できます。plt.plotの引数にlabelを指定したときは、これとセットで後にplt.legend()を呼び出さないと右上に凡例が表示されません。plt.legend()は「凡例を表示せよ」という意味です。

タイトルを設定するには

 plt.titleではタイトルを設定します。タイトルはグラフの上に表示されます。タイトルに日本語を入れることもできるのですが、その場合はフォントファイルの指定が必要になりOSに依存するので、ここでは省略します。

y軸の範囲を設定するには

 次に、「plt.ylim」でyの範囲を指定します。ここでは下記のように設定しています。

 ylimと同様にxの範囲をxlimで設定できますが、設定しないとデータに合わせて自動的に設定されます。x軸に付ける目盛りとy軸に付ける目盛りを、それぞれ「plt.xticks」「plt.yticks」で指定しています。

テキストによるアノテーションを指定するには

 「plt.annotate」ではテキストによるアノテーションを指定します。最初の文字列の「peek of sin」は表示される文字列です。名前付き引数xyは矢印の指す先を、「xytext」はテキストの表示位置を示します。「arrowpros」は矢印の特徴を辞書型で指定します。

 ここでは「{"arrowstyle":"->"}」により矢印の形を示しています。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。