導入
散布図は、2つの数量の**関係(相関)**を見るためのグラフです。「勉強時間と点数」「身長と体重」のように、点をばらまいて傾向を探ります。
説明
plt.scatter(x, y) で、x と y の組を点として打ちます。
import matplotlib.pyplot as plt
hours = [1, 2, 3, 4, 5, 6, 7, 8]
scores = [40, 45, 55, 58, 70, 72, 85, 90]
plt.scatter(hours, scores, color="purple")
plt.title("Study Hours vs Score")
plt.xlabel("hours")
plt.ylabel("score")
plt.show()
点が右肩上がりに並んでいれば「勉強時間が長いほど点数が高い」という正の相関が読み取れます。
numpy を使うと、相関の強さを数値(相関係数)でも確認できます。
import numpy as np
import matplotlib.pyplot as plt
hours = np.array([1, 2, 3, 4, 5, 6, 7, 8])
scores = np.array([40, 45, 55, 58, 70, 72, 85, 90])
r = np.corrcoef(hours, scores)[0, 1]
print("相関係数:", round(r, 3)) # 1に近いほど強い正の相関
plt.scatter(hours, scores)
plt.title("Study Hours vs Score")
plt.show()
相関係数は −1〜1 の値で、1に近いほど「片方が増えるともう片方も増える」関係が強いことを表します。
やってみよう
scores の値をばらつかせる(例:[40, 80, 30, 90, 20])と、点の散らばりと相関係数がどう変わるか見てみましょう。
演習
x = [10, 20, 30, 40]、y = [15, 25, 20, 40] の散布図を描いてください。タイトルは "scatter"。
ヒント1を見る
plt.scatter([10,20,30,40], [15,25,20,40]) → plt.title("scatter") → plt.show()。