【python】matplotlibを使ってさまざまなグラフを描画する方法

棒グラフのイメージ

この記事ではpythonのmatplotライブラリを使ったあらゆるグラフの描画方法をご紹介します!!

サンプルコードをコピペしながら、サクサクいろいろなグラフ描画を試せますのでぜひ活用してみてくださいね!!


目次

ライブラリのインストール

まず初めにお使いのpython実行環境にmatplotlibライブラリ, numpyライブラリをインストールしましょう。

ターミナル(mac)もしくはコマンドプロンプト(Windows)で下記を実行します。(参考:PyPI 公式ドキュメント)

pip install matplotlib
pip install numpy

コンソールの最終行に「Successfully installed 〜〜〜」と表示されていればインストールは成功です。


ライブラリのインポート

import matplotlib.pyplot as plt

通例としてpythonではmatplotlibをpltと命名してインポートします。

それではここから、pythonプログラムコードと一緒にさまざまなグラフ描画方法を紹介していきます。


さまざまなグラフの描画

matplotlibライブラリでは豊富な種類のグラフを簡単に描画することができます。

この記事ではmatplotlibライブラリでのグラフ描画をまとめて紹介していきます。

折れ線グラフ

最初はよく見かける折れ線グラフを描画してみましょう。

import matplotlib.pyplot as plt

# x軸の値
x = [0, 1, 2, 3, 4, 5, 6, 7]
# y軸の値
y = [4, 5, 6, 5, 4, 5, 6, 7]

# 座標(x, y)をプロット
plt.plot(x, y, color="k")
# グラフを表示
plt.show()

折れ線グラフはもっともシンプルなグラフのひとつですが、たった10行程度のコードで描画することができます。

折れ線グラフの描画方法の詳細はこちらが参考になります。

曲線グラフ

続いては、数式を利用して曲線グラフを描画してみます。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 4*np.pi, 0.01)
plt.plot(x, np.sin(x), color="c")
plt.show()

三角関数の sin波 を2周期分でプロットしてみました。

numpyライブラリの sin モジュールを使って簡単に sin 波を描画することができます。

散布図

散布図は主に縦軸・横軸の要素どうしに相関関係があるかを確かめるときに使用します。

今回は完全にランダムな値をプロットしてみます。

import numpy as np
import matplotlib.pyplot as plt

x = np.random.randn(100)
y = np.random.randn(100)

plt.scatter(x, y, s=100, color="green", alpha=0.5)
plt.show()

散布図をプロットする場合、matplotlib.pyplot の scatter モジュールを使うことで描画できます。

引数の s でプロット数、 alpha でプロット点の不透明度を指定することができます。

散布図の描画方法の詳細はこちらが参考になります。

棒グラフ

棒グラフは人口の推移やアンケートの集計結果などをまとめる際によく使われます。

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7]
y = [32, 55, 59, 78, 90, 110, 139]
labels = ["a", "b", "c", "d", "e", "f", "g"]
plt.bar(x, y, width=0.5, color="y",
        edgecolor="black", linewidth=1, alpha=0.5, tick_label=labels, hatch='-')
plt.title("figure title")
plt.xlabel("data")
plt.ylabel("volume")
plt.show()

棒グラフをプロットするには、matplotlib.pyplotbar モジュールを用いることで描画できます。

棒グラフの描画方法の詳細はこちらが参考になります。


ヒストグラム

ヒストグラムはデータを区間ごとに区切り、各区間の個数や数値のばらつき度合いを示すグラフです。

import numpy as np
import matplotlib.pyplot as plt

data = []
for _ in range(1000):
    list.append(np.random.randint(1, 10, size=10).sum())

plt.hist(data, 20, color="b", alpha=0.75, width=1)
plt.show()

ヒストグラムを作図するには、matplotlib.pyplothist モジュールを使用します。


円グラフ

円グラフは円全体を100%とし、その内を占める割合を扇型で示すグラフです。

import matplotlib.pyplot as plt

labels = ['w', 'x', 'y', 'z']
sizes = [60, 20, 15, 5]

plt.pie(sizes, labels=labels)

plt.show()

円グラフを描画するには、matploblib.pyplotpie モジュールを使います。

データ数や割合に応じて自動で色分けや配置をしてくれるので非常に便利です。

円グラフの具体的な描画方法はこちらで詳しく解説しています!!


まとめ

今回はpythonのmatplotlibライブラリを使ったさまざまなグラフの描画方法を紹介しました。

それぞれのグラフでは多くのオプションを指定することができるので、さらに細かいグラフ描画設定も行えます。

pythonでグラフを描画する際はぜひ参考にしてみてくださいね。

よかったらシェアしてね!
目次