本記事では、下図のような散布図の雛形コードを載せました。特徴は、第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.show() plt.savefig('sample.jpg', bbox_inches='tight')
以上
<広告>
リンク
リンク
リンク