seabornを活用する上で、公式サイトのギャラリーが勉強になりそうなので解説してみました。
第2弾は、scatterplot関数を使って、seaborn付属のダイヤモンドのデータを可視化してみます。
参考にしたのはこちらです。
# ライブラリ読み込み
import seaborn as sns
import matplotlib.pyplot as plt
# スタイルを設定(この場合は格子状にする設定)
sns.set_theme(style="whitegrid")
# seabornにデフォルトで用意されているダイヤモンドのデータを読み込む
diamonds = sns.load_dataset("diamonds")
# グラフのサイズを設定
f, ax = plt.subplots(figsize=(6.5, 6.5))
# 軸を表示しないように設定(今回は軸を表示してしまうと表示がおかしくなってしまう)
sns.despine(f, left=True, bottom=True)
# clarityのラベルを設定
clarity_ranking = ["I1", "SI2", "SI1", "VS2", "VS1", "VVS2", "VVS1", "IF"]
# 与えられたデータを元に散布図を出力。ポイントの色とサイズで区分を表現。
sns.scatterplot(x="carat", y="price", hue="clarity", size="depth", palette="ch:r=-.2,d=.3_r",
hue_order=clarity_ranking, sizes=(1, 8), linewidth=0, data=diamonds, ax=ax)
sns.scatterplotについては、与えれらたデータから散布図を描画してくれます。各引数の説明をします。(詳細はこちら)
- x:グラフのX軸にする項目
- y:グラフのy軸にする項目
- hue:散布図の中で色分けしたい項目。
- size:散布図の中でサイズ分けしたい項目。
- palette:グラフのカラーパレットを指定。詳細はこちら。
- hue_order:hueに対してラベルを設定。(hueが数字になっている場合に設定するとベター)
- sizes:sizeに対してサイズの範囲を設定。
- linewidth:ポイントの縁の幅です。今回の例では0になっているので縁は付きません。
- data:取り扱うデータ
- ax:軸に関する指定をmatplotlibの形式で指定。
覚えておくと色々と便利ですね!