Matplotlibのsubplot関数を使ってPythonで2つのグラフを作成する方法
Matplotlibとは
Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリのひとつです。
データの可視化は分析において非常に重要なステップです。数値を一つひとつ確認したり複雑な計算を実行したりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるからです。また、定量的な洞察を相手に効果的に伝える手段としても優れています。
Matplotlibは2次元のグラフ(プロット)を作成するために使用され、オブジェクト指向APIを備えているため、Pythonアプリケーションへのグラフ埋め込みも簡単に行えます。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で利用できます。
Matplotlib自体はPythonで書かれており、数値計算パッケージであるNumPyを基盤として構築されています。
Matplotlibのインストール方法
Windows環境では、以下のコマンドでMatplotlibをインストールできます。
pip install matplotlib
Matplotlibの主な依存パッケージは以下のとおりです。
Python(バージョン3.4以上) NumPy Setuptools Pyparsing Libpng Pytz FreeType Six Cycler Dateutil
複数のグラフを描画したい場面
2つの異なるデータセットの関係性を比較・分析したい場合など、複数のグラフを並べて表示したいことがあります。このようなときに、1つの図の中に複数のプロットを配置する手法が役立ちます。
ポイント: 本記事では、「subplot」関数を明示的に使用して2つのグラフを作成する方法を紹介します。
サンプルコード
import numpy as np
import matplotlib.pyplot as plt
x1_val = np.linspace(0.0, 6.0)
x2_val = np.linspace(0.0, 3.0)
y1_val = np.cos(2.3 * np.pi * x1_val) * np.exp(-x1_val)
y2_val = np.cos(2.4 * np.pi * x2_val)
plt.subplot(2, 1, 1)
plt.plot(x1_val, y1_val, 'o-')
plt.title('2 plots using "subplot" function')
plt.ylabel('Plot 1')
plt.subplot(2, 1, 2)
plt.plot(x2_val, y2_val, '.-')
plt.xlabel('x-axis')
plt.ylabel('Plot 2')
plt.show()
出力結果

コードの解説
必要なパッケージをインポートし、利便性のためにエイリアス(np、plt)を定義します。
NumPyライブラリを使用して、2種類の異なるデータセットを作成します。
linspaceにより範囲内の等間隔の値が生成されます。「subplot」関数を使って、同じ図の中に2つの独立したグラフ領域を作成します。
plt.subplot(2, 1, 1)は「縦2行×横1列のレイアウトのうち、1番目の位置」を意味し、plt.subplot(2, 1, 2)は2番目の位置を指定しています。「plot」関数で各データセットをグラフ化します。線のスタイル('o-'や'.-')を指定することで、マーカー付きの折れ線グラフになります。
title、xlabel、ylabel関数を使って、グラフのタイトルおよびX軸・Y軸のラベルを設定します。最後に「show」関数を呼び出して、作成したグラフを画面に表示します。
-
Seabornのfactorplotを使ってPythonでデータを可視化する方法
Seabornは、データの可視化を支援するPythonライブラリです。カスタマイズされたテーマと高水準インターフェースを備えており、美しい統計グラフを少ないコード量で作成できるのが特徴です。 棒グラフ(barplot)と点グラフ(pointplot)の基本 barplot関数は、カテゴリ変数と連続変数の関係を表現します。データは長方形のバーとして描画され、バーの長さがそのカテゴリにおけるデータの割合を示します。 pointplotは棒グラフに似ていますが、塗りつぶしのバーの代わりに、データポイントの推定値がもう一方の軸上の特定の高さにある点として表現される点が異なります。 factorplot
-
PythonのSeabornライブラリでcountplotを使ってデータを可視化する方法
Seabornは、データの可視化を支援するPythonライブラリです。カスタマイズされたテーマと高水準のインターフェースを備えており、美しいグラフを簡単に作成できます。 これまでのプロットでは、データセット全体をグラフ上に描画してきました。一方、棒グラフ(bar plot)を活用すると、データ分布の中心的な傾向(中央傾向)を把握することができます。 barplot関数は、カテゴリ変数と連続変数の関係を表現するのに役立ちます。データは長方形のバーとして描画され、バーの長さがそのカテゴリにおけるデータの割合を示します。 barplotの特殊なケースがcountplotです。countplotは、第