本記事では、下図のような散布図の雛形コードを載せました。特徴は、第1から第4象限までの各象限のデータを異なる色でプロットします。また、各データポイントのデータ名を散布図上に表記します(この例では‘A’から’J’)。これにより、データを識別するのが容易になります。

下表は、上図のプロットしたサンプルデータです。

■本プログラム
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
plt.rcParams['font.size'] = 18
data = {
'Name': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'],
'X': [5.055408322, -2.385845007, -1.711207898, 5.58138151, 0.603216157, -0.254582819, -4.996806703, 2.14433048, 4.635058437, -1.710784347],
'Y': [4.13072286, 3.289168743, -2.341629963, -2.514922835, 4.750136776, 2.106630909, -0.976219056, -3.237439429, -4.717556451, 1.322998337]
}
df = pd.DataFrame(data)
print(df)
quad1 = df[(df['X'] > 0) & (df['Y'] > 0)]
quad2 = df[(df['X'] < 0) & (df['Y'] > 0)]
quad3 = df[(df['X'] < 0) & (df['Y'] < 0)]
quad4 = df[(df['X'] > 0) & (df['Y'] < 0)]
plt.figure(figsize=(8, 6))
plt.scatter(quad1['X'], quad1['Y'], color='red', s=50, label='第一象限')
plt.scatter(quad2['X'], quad2['Y'], color='orange', s=50, label='第二象限')
plt.scatter(quad3['X'], quad3['Y'], color='blue', s=50, label='第三象限')
plt.scatter(quad4['X'], quad4['Y'], color='green', s=50, label='第四象限')
for i, txt in enumerate(df['Name']):
plt.annotate(txt, (df['X'][i], df['Y'][i]), textcoords="offset points", xytext=(0,10), ha='center')
plt.xlim(-6, 6)
plt.ylim(-6, 6)
plt.axhline(0, color='black',linewidth=1.5)
plt.axvline(0, color='black',linewidth=1.5)
plt.xlabel('X軸')
plt.ylabel('Y軸')
plt.title('散布図')
plt.legend(bbox_to_anchor=(1, 1), loc='upper left')
plt.grid(True)
plt.savefig('sample.jpg', bbox_inches='tight')
以上
<広告>
リンク
リンク
リンク