これまでリストやタプルなど、複数のデータを扱う方法を学習してきました。今回はこれらのデータを使って、Google Colaboratory (Colab)上で視覚的に分かりやすい「グラフ」を描画する方法を解説します。結果をグラフにして目で確認できることは、理解を深めるために非常に有効です。

外部ライブラリ matplotlibについて

Pythonには、最初から用意されている機能のほかに、後から追加して使える便利な「外部ライブラリ」がたくさんあります。matplotlib(マットプロットリブ)は、その中でもグラフを描画するための最も有名で標準的なライブラリの一つです。

データ分析や人工知能(AI・機械学習)の分野でも世界中で使われており、「折れ線グラフ」をはじめ、「棒グラフ」や「円グラフ」、「散布図(点を打つグラフ)」など、あらゆる種類のグラフを自由自在に描くことができる強力なツールです。今回はこれらの代表的なグラフの描き方も順番に紹介していきます。

Colabには最初からこのライブラリが入っているので、面倒なインストール作業なしですぐに使うことができます。(※もし自分のパソコンのPython環境で使う場合は、あらかじめ pip install matplotlib というコマンドでインストールしておく必要があります)

ただし、注意点として、標準の状態では、グラフのタイトルなどに日本語を使うと文字化け(「□□□」のような表示)してしまいます。そのため、今回のサンプルコードでは一時的に日本語を使用しないようにしていますが、日本語を表示させる方法については記事の後半で解説します。

matplotlibを使用する

外部ライブラリを使うためには、プログラムの先頭で「インポート(読み込み)」の宣言を行う必要があります。これは以前、randomモジュール(https://augmented-vr.com/using-pythons-random-module/)の記事で学習した import と全く同じ仕組みです。

今回は matplotlib の中にある pyplot (パイプロット)という、グラフを簡単に描くための機能を使います。プログラムの最初に以下のように記述してインポートします。

import matplotlib.pyplot as plt

毎回 matplotlib.pyplot と長く書くのは大変ですよね。そこで、最後に as plt と付けることで、プログラムの中では短く plt として呼び出せるようにするのがPythonの世界での一般的なお約束になっています。

では、実際にやってみましょう。
Colabを開いて新しいノートブックを作成し、簡単な折れ線グラフを描画するプログラムを書いてみます。

# matplotlibライブラリをpltという名前で読み込む
import matplotlib.pyplot as plt

# X軸(横軸)とY軸(縦軸)のデータを用意する
x_data = [1, 2, 3, 4, 5]
y_data = [10, 20, 15, 30, 5]

# 折れ線グラフを描画する
plt.plot(x_data, y_data)

# グラフを画面に表示する
plt.show()

とセルに入力して実行してみましょう。すると結果は、

折れ線グラフ

のように表示されます。

プログラムの解説(折れ線グラフ)

  • ライブラリの読み込み(2行目): import matplotlib.pyplot as plt と記述して、グラフを描画するためのライブラリをpltという短い名前で使えるように準備しています。
  • データの準備(5~6行目): X軸(横)とY軸(縦)のデータとなるリストを作成し、それぞれ変数に代入しています。
  • グラフの作成(9行目): plt.plot() を使って、用意したデータをもとに折れ線グラフを作成しています。
  • グラフの表示(12行目): 最後に plt.show() を実行することで、作成したグラフをColabの画面上に表示させています。

棒グラフを描いてみる

折れ線グラフだけでなく、項目ごとの大きさを比較しやすい「棒グラフ」も描いてみましょう。

import matplotlib.pyplot as plt

# X軸の項目(カテゴリ)と、Y軸のデータ(数値)を用意する
categories = ["A", "B", "C", "D", "E"]
value = [15, 30, 15, 45, 20]

# 棒グラフを描画する
plt.bar(categories, value)

# グラフを画面に表示する
plt.show()

とセルに入力して実行してみましょう。すると結果は、

棒グラフ

のように表示されます。

プログラムの解説(棒グラフ)

  • データの準備(4~5行目): X軸となるカテゴリ(文字列のリスト)と、Y軸となる数値のリストを用意しています。
  • グラフの作成(8行目): 折れ線グラフの plt.plot() の代わりに、棒グラフを描くための plt.bar() を使っています。

円グラフを描いてみる

データの割合を分かりやすく見せるには「円グラフ」が便利です。

import matplotlib.pyplot as plt

# 円グラフの各項目の名前と、それぞれの割合(数値)を用意する
labels = ["Apple", "Banana", "Cherry", "Orange"]
sizes = [40, 30, 20, 10]

# 円グラフを描画する
plt.pie(sizes, labels = labels)

# グラフを画面に表示する
plt.show()

とセルに入力して実行してみましょう。すると結果は、

円グラフ

のように表示されます。

プログラムの解説(円グラフ)

  • データの準備(4~5行目): 円グラフの項目名となるリスト(labels)と、それぞれの大きさとなる数値のリスト(sizes)を用意しています。
  • グラフの作成(8行目): 円グラフを描くための plt.pie() を使っています。括弧の中には、数値のリスト(sizes)と、ラベルの指定(labels = labels)を入れています。

散布図を描いてみる

2つのデータの関係性を見るときには、「散布図」を使います。

import matplotlib.pyplot as plt

# X軸とY軸のデータを用意する
x_points = [10, 20, 30, 40, 50, 60]
y_points = [10, 20, 15, 30, 5, 60]

# 散布図を描画する
plt.scatter(x_points, y_points)

# グラフを画面に表示する
plt.show()

とセルに入力して実行してみましょう。すると結果は、

散布図

のように表示されます。

プログラムの解説(散布図)

  • グラフの作成(8行目): 散布図を描くための plt.scatter() を使っています。X軸のデータとY軸のデータを渡すことで、それぞれのペアの位置に点が打たれます。

[補足1]グラフで日本語を使いたい場合(文字化け対策)

最初にも少し触れましたが、matplotlibは標準状態だと日本語を表示するためのフォントを持っていません。そのため、 plt.title("グラフ")のように日本語を指定すると、文字が「□□□」のように文字化けしてしまいます(通称:豆腐文字)。

Colabでこれを解決する方法は、 japanize-matplotlib という日本語化専用の拡張ライブラリを使うことです。

使うには準備が必要です。まず、Colabのセルで以下のコマンドを実行してインストールします(先頭の ! を忘れないようにしてください)。

!pip install japanize-matplotlib

インストールが終わったら、グラフを描くプログラムの最初でインポートするだけです。

import matplotlib.pyplot as plt
import japanize_matplotlib # これを追加する

# 以降はグラフに日本語が使えます
x_data = ["一", "二", "三"]
y_data = [10, 20, 30]

plt.bar(x_data, y_data)
plt.title("日本語を使用したグラフ")
plt.xlabel("横軸")
plt.ylabel("縦軸")

plt.show()

これを実行すると、文字化けせずに綺麗な日本語でグラフが表示されます。日本語のデータを見やすくまとめたい時は、ぜひこの方法を活用してください。

プログラムの解説(日本語を使用したグラフ)

  • ライブラリの読み込み(1~2行目): 通常のimport matplotlib.pyplot as plt に加えて、日本語を表示できるようにするためのimport japanize_matplotlib を読み込んでいます。
  • データの準備(5~6行目): X軸となるカテゴリ(日本語の文字列のリスト)と、Y軸となる数値のリストを用意しています。
  • グラフの作成(8~11行目): plt.bar()を使って棒グラフを作成し、plt.title()plt.xlabel()などを使い、日本語でタイトルや軸の名前を設定しています。
  • グラフの表示(13行目): 最後にplt.show()を実行することで、作成したグラフをColabの画面上に表示させています。

[補足2] %matplotlib inline について

インターネット上の記事や古い参考書などでmatplotlibの使い方を調べると、プログラムの先頭に %matplotlib inline という見慣れないコードが書かれていることがあります。

「今回のコードには書く必要はないのか」と疑問に思うかもしれませんが、現在のColabでは書かなくても大丈夫(不要)です。

昔の環境では、この1行を書かないとグラフがノートブックの画面内(インライン)に正しく表示されなかったため、グラフを表示させるための「おまじない」として必須でした。しかし、現在のColabでは、デフォルトでグラフが画面内に表示されるように設定されているため、わざわざ書かなくても plt.show() だけで綺麗に表示されます。

今回の記事では省略して解説していますが、他のサイトのコードをコピーしてきて %matplotlib inline が残っていてもエラーになるわけではないので安心してください。

まとめ

  • matplotlib: 棒グラフや円グラフなど、様々なグラフを描画するための定番ライブラリ。データ分析にも使われているツール。
  • import matplotlib.pyplot as plt: pyplot 機能を plt という短い名前で呼び出せるようにインポートするのが一般的。
  • グラフの描き分け: 用途に合わせて関数を使い分けます。
    • plt.plot(): 折れ線グラフ
    • plt.bar(): 棒グラフ
    • plt.pie(): 円グラフ
    • plt.scatter(): 散布図
  • 日本語の利用(文字化け対策): !pip install japanize-matplotlib を実行し、import japanize_matplotlib を追加するだけで日本語が綺麗に表示される。
  • plt.show(): 出来上がったグラフを画面に表示する。

数字だけでは分かりにくいデータも、グラフにすることで、一目で特徴を掴むことができます。データを書き換えて、いろいろなグラフを描いてみてください。

open-in-colab

今回はこれで終了です。
今回のサンプルを用意したので、もし必要な場合は上の「Open in Colab」と書いてあるボタンをクリックしてください。なおそのままだと編集不可なので編集をしたい場合は「ドライブにコピー」をクリックしてコピーしてください。
なおGoogle ColaboratoryについてわからなかったらGoogleColaboratoryを使ってみよう_導入編をご覧ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA