Pythonの画像描画ライブラリ「Matplotlib」の、機械学習で使われる典型的なグラフ機能:Pythonで始める機械学習入門(5)(2/3 ページ)
最近流行の機械学習/Deep Learningを試してみたいという人のために、Pythonを使った機械学習について主要なライブラリ/ツールの使い方を中心に解説する連載。今回は、画像描画のためのライブラリであるMatplotlibについて。機械学習で使われる典型的な機能のみをピックアップして解説します。
曲線の描画
次に、曲線を描いてみます。曲線を描くには点の刻みを細かくして折れ線を描きます。「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.
関連記事
- 機械学習、ビッグデータ解析に欠かせない、PythonをWindowsにダウンロードしてインストール、アンインストールする
本連載では、さまざまなソフトウェアのインストール、実行するためのセットアップ設定、実行確認、アンインストールの手順を解説する。今回は、Pythonとは何か、Pythonのインストールとアンインストールについて解説。Pythonがよく使われる機械学習やビッグデータ解析を始める参考にしてほしい。 - ITエンジニアがデータサイエンティストを目指すには?
それぞれの専門分野を生かした「データサイエンスチーム」を結成すればデータ活用への道は短縮できる。そのとき、ITエンジニアはどんな知識があればいい? データサイエンティストとして活動する筆者が必須スキル「だけ」に絞って伝授します。 - Recurrent Neural Networkとは何か、他のニューラルネットワークと何が違うのか
本連載では、Deep Learningの中でも、時系列データを扱うRecurrent Neural Networkについて解説。加えて、その応用方法として原稿校正(誤字脱字の検知)の自動化について解説します。