【Python】2軸の散布図を描画する方法 matplotlib

Python

本記事は、Pythonの可視化ライブラリであるmatplotlibを使って、2軸の散布図を描く方法について解説します。

また、(2軸ではありませんが、、)その他の簡単な可視化のサンプルコードも載せておりますので、ぜひ参考にしていってください。では、早速見ていきましょう!

matplotlibのインストール

まず、matplotlibを使用するためには、次のコマンドでライブラリをインストールしてください。

pip install matplotlib

サンプルデータの準備

今回は、以下のサンプルデータを用意しました。x軸の値が増加すると、y1軸の値は増加し、y2軸の値は減少する関係になっています。

import numpy as np

np.random.seed(42)

x = np.arange(1, 101)
y1 = 2 * x + np.random.randn(100) * 10
y2 = 200 - 1.5 * x + np.random.randn(100) * 10

散布図の描画

次に、matplotlibを使って散布図を描画します。x軸とy1軸、y2軸を使って、二つの散布図を描画していきます。

import matplotlib.pyplot as plt

fig, ax1 = plt.subplots()

# y1軸の散布図を描画
ax1.scatter(x, y1, color='blue', alpha=0.5, label='y1')

# y2軸の散布図を描画
ax2 = ax1.twinx()
ax2.scatter(x, y2, color='red', alpha=0.5, label='y2')

# グラフの装飾
ax1.set_xlabel('X-axis')
ax1.set_ylabel('Y1-axis', color='blue')
ax2.set_ylabel('Y2-axis', color='red')

ax1.legend(loc='center left')
ax2.legend(loc='center right')

plt.title('Scatter plot with two y-axes')

plt.show()

このコードでは、plt.subplots()でグラフのfigとax1を作成し、ax1.twinx()で二つ目のy軸を追加しています。そして、scatter()関数で散布図を描画しています。最後に、plt.show()でグラフを表示しています。

Matplotlibに関する情報 | note.nkmk.me
Matplotlibに関して学んだ情報一覧。

まとめ

この記事では、matplotlibを使って、x軸が共通の2軸散布図を描画する方法について解説しました。

サンプルコードを参考に、自分のデータに適用してみてください。

今回の例では、x軸の値が増加すると、y1軸の値が増加し、y2軸の値が減少する関係を表現するグラフを作成しました。matplotlibは非常に柔軟で強力なライブラリであり、他にもさまざまなグラフやチャートを作成することができます。

【番外編】他のグラフの描画方法

matplotlibを用いて、さらに様々なグラフを作成することができます。例えば、棒グラフ、ヒストグラム、箱ひげ図などです。それぞれのグラフはデータの特性や目的に応じて選択しましょう。

棒グラフ

棒グラフは、カテゴリ別のデータを比較する際に便利です。以下の例では、カテゴリごとの売上データを表示しています。

categories = ['Category A', 'Category B', 'Category C']
sales = [100, 150, 80]

plt.bar(categories, sales)

plt.xlabel('Categories')
plt.ylabel('Sales')

plt.title('Sales by Category')

plt.show()

ヒストグラム

ヒストグラムは、データの分布を確認する際に使用されます。以下の例では、正規分布に従うデータのヒストグラムを描画しています。

data = np.random.randn(1000)

plt.hist(data, bins=30)

plt.xlabel('Value')
plt.ylabel('Frequency')

plt.title('Histogram of Normal Distribution')

plt.show()

箱ひげ図

箱ひげ図は、データの四分位数や外れ値を視覚化するのに適しています。以下の例では、3つのグループのデータを箱ひげ図で表示しています。

group_a = np.random.normal(100, 10, 50)
group_b = np.random.normal(80, 30, 50)
group_c = np.random.normal(90, 20, 50)

data = [group_a, group_b, group_c]
labels = ['Group A', 'Group B', 'Group C']

plt.boxplot(data, labels=labels)

plt.ylabel('Value')#

plt.title('Boxplot of Three Groups')

plt.show()

以上で、matplotlibを使った様々なグラフの描画方法について紹介しました。今後もmatplotlibを活用して、データ分析や可視化に役立ててください。

データサイエンティストの書評ブログ
趣味が読書くらいしかない駆け出しデータサイエンティストの書評ブログです。日々の勉強のアウトプットや趣味の読書のおすすめをしていきます。

サイト内関連記事

コメント

タイトルとURLをコピーしました