本記事は、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を使って、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を活用して、データ分析や可視化に役立ててください。
コメント