🎨
【python】seabornで系列数が多い時にハイライト表示したグラフが描けるライブラリ Vol.2
はじめに
以前、Rのgghighlightというパッケージを真似てpython用のライブラリを作ったんですが(下記記事を参照)、使いづらいところがあったのでいくつか修正して新しいパッケージとして整理しました。
パッケージの概要
pythonのseabornを使ってグラフを描く時に、hue
引数を指定すると系列を簡単に分けられるのですが、数が増えすぎると見づらくなることがあります。
色が多くなり、パッと見て注目ポイントがわからない図
今回は、系列が多いときに一部の系列のみカラー表示とすることで、注目したい系列をハイライトさせるライブラリを作成しました。
2色(+灰色)にすることで、注目したいポイントが目立つようになった図
使い方
pipでインストールします。
pip install plot-highlight
後は seabornでグラフを描く時と同じ要領で使用できます。
実行時の違いは highlights
にハイライトしたい項目を渡す という点のみです。
import seaborn as sns
import plot_highlight as phl # Plot HighLight
df = sns.load_dataset('healthexp')
# 通常の場合
# sns.lineplot(data=df, x='Year', y='Life_Expectancy', hue='Country')
# ハイライトする場合
phl.lineplot(data=df, x='Year', y='Life_Expectancy', hue='Country',
highlights=['Japan', 'USA']) # <- この引数を追加
実装
グラフを描く関数を呼び出したときに、ハイライトする項目とその他の項目でDataFrameを分けて、それぞれについてグラフ関数を呼び出ししています。
ハイライトしない項目は、すべて同じ色のリストを渡してあげることで、ハイライトしたい項目が目立つようにします。
なお、現時点で対応しているのは以下3点のみです。
sns.scatterplot
sns.lineplot
sns.histplot
前回からの変更点
-
ハイライトしない系列についても、グループ分けは実施
lineplotでハイライトしない系列が1つに集約される仕様を修正した。 -
PyPIに登録
別記事にあんちょこ作った。
Discussion