[Seaborn][matplotlib]Pythonのseaborn散布図プロットで各点にラベルをつける方法

white product label python
Photo by Miguel Á. Padriñán on Pexels.com

Seaborn

seaborn: statistical data visualization — seaborn 0.13.2 documentation

散布図で各点にラベルをふる

意外に調べてもわからなかった。ここではTipsデータセットを使って各点にラベル(番号)をつける。

必要ライブラリのimport

いつものやつ。

import pandas as pd
import numpy as np
from matplotlib import pylab as plt
import japanize_matplotlib
import seaborn as sns
sns.set(font = "IPAexGothic")
plt.style.use("seaborn-whitegrid")

Tipsデータセットを読み込み。


tips = sns.load_dataset("tips")[:30]
#図が煩雑になるので最初の30データだけ読み込み

tips["ID"] = np.arange(len(tips))
tips.ID = tips.ID.astype(str)
#文字型に変換

def label_point(x,y,id,ax):
  df_tmp=pd.concat({'x':x,'y':y,'id':id}, axis='columns')
  for i, point in df_tmp.iterrows():
    ax.text(point['x'], point['y'], point['id'],\
    fontsize=10\
    )
ax = sns.scatterplot(x = "total_bill", y = "tip", data = tips)
label_point(tips["total_bill"], tips["tip"], tips["ID"], ax)

ポイントはIDを文字型に変換すること。これを行わないと番号は”12.0″などという表示になってしまう。図がこちら。

細かい調整は行っていない。

関連記事

pythonでのグラフ、図の描写のまとめ-seabornでのグラフ作成方法を中心に-
seabornで細かい図の設定を調整する

関連リンク

以下の記事を参照。

seaborn散布図の各点にラベルを付ける - Qiita
初投稿の42歳おじさん。seabornに乗り換えたて。###困ったこと散布図を書いて、idと各点の対応がわからなくてイマイチだった。調べてみると、各点へのラベル付けもやり方があるらしいので、…

コメント

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