[Python]複数の図を並べて重ねる !

Pythonはデータ解析や機械学習の分野で広く使われています。その中でもデータ可視化は非常に重要で、データの特徴や傾向を把握するために欠かせないものです。

Pythonで複数の図を並べる方法

複数のグラフを並べることで、複数のデータを同時に比較することができます。Pythonでは、Matplotlibというライブラリを使うことで、複数のグラフを簡単に並べることができます。

コードと説明

以下のコードは、2つのグラフを並べる例です。

import numpy as np
import matplotlib.pyplot as plt
# データの作成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# グラフの描画
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.plot(x, y1)
ax1.set_title('sin(x)')
ax2.plot(x, y2)
ax2.set_title('cos(x)')
plt.show()

このコードでは、subplots()関数を使って、1行2列のグリッドを作成し、2つのグラフを作成しています。また、set_title()関数を使って、各グラフにタイトルを設定しています。

実際のデータを用いた例

以下のコードは、irisデータセットを用いて、3つのグラフを並べる例です。

from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
# データの読み込み
iris = load_iris()
# グラフの描画
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 4))
ax1.scatter(iris.data[:, 0], iris.data[:, 1], c=iris.target)
ax1.set_title('Sepal length vs. Sepal width')
ax2.scatter(iris.data[:, 0], iris.data[:, 2], c=iris.target)
ax2.set_title('Sepal length vs. Petal length')
ax3.scatter(iris.data[:, 0], iris.data[:, 3], c=iris.target)
ax3.set_title('Sepal length vs. Petal width')
plt.show()

このコードでは、load_iris()関数を使って、irisデータセットを読み込んでいます。そして、subplots()関数を使って、1行3列のグリッドを作成し、3つのグラフを作成しています。各グラフは、花の3つの特徴量を比較したものです。

Pythonで複数の図を重ねる方法

複数のグラフを重ねることで、複数のデータを比較することができます。Pythonでは、Matplotlibというライブラリを使うことで、複数のグラフを簡単に重ねることができます。

コードと説明

以下のコードは、2つのグラフを重ねる例です。

import numpy as np
import matplotlib.pyplot as plt
# データの作成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# グラフの描画
plt.plot(x, y1)
plt.plot(x, y2)
plt.show()

このコードでは、plot()関数を2回呼び出して、2つのグラフを重ねています。

実際のデータを用いた例

以下のコードは、irisデータセットを用いて、3種類の花の特徴量を比較する例です。

from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
# データの読み込み
iris = load_iris()
# グラフの描画
plt.plot(iris.data[iris.target==0, 0], iris.data[iris.target==0, 1], 'o', label=iris.target_names[0])
plt.plot(iris.data[iris.target==1, 0], iris.data[iris.target==1, 1], 'o', label=iris.target_names[1])
plt.plot(iris.data[iris.target==2, 0], iris.data[iris.target==2, 1], 'o', label=iris.target_names[2])
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.legend()
plt.show()

このコードでは、plot()関数を3回呼び出して、3種類の花の特徴量を比較しています。また、legend()関数を使って、各グラフの凡例を表示しています。

よくあるエラーとその対処法

ModuleNotFoundError: No module named ‘matplotlib’

Matplotlibがインストールされていない場合に発生します。Matplotlibをインストールすることで、解決できます。

!pip install matplotlib

AttributeError: ‘AxesSubplot’ object has no attribute ‘legend’

Matplotlibのバージョンが古い場合に発生します。Matplotlibのバージョンを更新することで、解決できます。

!pip install --upgrade matplotlib

まとめ

PythonのMatplotlibを使うことで、複数のグラフを並べたり、重ねたりすることが簡単にできます。データ可視化はデータ解析や機械学習において重要な作業であり、Matplotlibを使うことで、効率的にデータを分析することができます。