Matplotlibは、Pythonで2Dプロットを作成するための広く使用されているライブラリです。データの可視化を行うための強力なツールセットを提供し、科学計算やデータ分析の分野で特に重宝されています。
Matplotlibとは
Matplotlibは、Pythonでデータの視覚化を行うためのライブラリです。特にmatplotlib.pyplotモジュールは、使いやすいインターフェースを提供し、さまざまな種類のプロットを簡単に作成できます。
インストール
まず、Matplotlibを使用するには、ライブラリをインストールする必要があります。以下のコマンドを使用します:
pip install Matplotlib
基本的なプロット
Matplotlibの基本的な機能は、折れ線グラフや散布図などのプロットを作成することです。
import matplotlib.pyplot as plt
# データの作成
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# プロットの作成
plt.plot(x, y)
# タイトルとラベルの設定
plt.title("基本的な折れ線グラフ")
plt.xlabel("x軸")
plt.ylabel("y軸")
# グラフの表示
plt.show()
散布図
散布図は、データの分布や関係を視覚化するのに役立ちます。
import matplotlib.pyplot as plt
# データの作成
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 散布図の作成
plt.scatter(x, y)
# タイトルとラベルの設定
plt.title("基本的な散布図")
plt.xlabel("x軸")
plt.ylabel("y軸")
# グラフの表示
plt.show()
ヒストグラム
ヒストグラムは、データの分布を視覚化するのに役立ちます。
import matplotlib.pyplot as plt
import numpy as np
# ランダムなデータの生成
data = np.random.randn(1000)
# ヒストグラムの作成
plt.hist(data, bins=30, alpha=0.7, color='blue')
# タイトルとラベルの設定
plt.title("基本的なヒストグラム")
plt.xlabel("値")
plt.ylabel("頻度")
# グラフの表示
plt.show()
棒グラフ
棒グラフは、カテゴリカルデータを視覚化するのに役立ちます。
import matplotlib.pyplot as plt
# データの作成
categories = ['A', 'B', 'C', 'D', 'E']
values = [5, 7, 3, 8, 4]
# 棒グラフの作成
plt.bar(categories, values, color='green')
# タイトルとラベルの設定
plt.title("基本的な棒グラフ")
plt.xlabel("カテゴリ")
plt.ylabel("値")
# グラフの表示
plt.show()
サブプロット
一つの図に複数のプロットを配置することもできます。これをサブプロットと呼びます。
import matplotlib.pyplot as plt
import numpy as np
# データの作成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# サブプロットの作成
fig, axs = plt.subplots(2)
# 1つ目のプロット
axs[0].plot(x, y1, 'r')
axs[0].set_title('サインカーブ')
# 2つ目のプロット
axs[1].plot(x, y2, 'b')
axs[1].set_title('コサインカーブ')
# 図全体のタイトルの設定
fig.suptitle('サブプロットの例')
# グラフの表示
plt.show()
実例
例題1: 株価データの可視化
以下の例では、PandasとMatplotlibを使用して、株価データを可視化します。
import pandas as pd
import matplotlib.pyplot as plt
# 株価データの作成
data = {
'日付': pd.date_range(start='2023-01-01', periods=10),
'価格': [150, 152, 148, 149, 153, 155, 157, 158, 160, 162]
}
df = pd.DataFrame(data)
# 日付をインデックスに設定
df.set_index('日付', inplace=True)
# プロットの作成
plt.plot(df.index, df['価格'], marker='o')
# タイトルとラベルの設定
plt.title("株価の推移")
plt.xlabel("日付")
plt.ylabel("価格")
# グラフの表示
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
例題2: 複数のデータシリーズの可視化
以下の例では、Matplotlibを使用して複数のデータシリーズを可視化します。
import matplotlib.pyplot as plt
import numpy as np
# データの作成
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# プロットの作成
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
# タイトルとラベルの設定
plt.title("サインカーブとコサインカーブ")
plt.xlabel("x軸")
plt.ylabel("y軸")
# 凡例の表示
plt.legend()
# グラフの表示
plt.show()