top of page

Seabornでhueを引数に持たないメソッドでも色分けをする方法


はじめに


データを綺麗なグラフで可視化できるライブラリseaborn。なかでもいくつかのメソッドではhueという引数にカテゴリを指定すると、そのカテゴリごとに色分けをしてグラフを描いてくれます。ところが、一部のメソッドはこのhueを引数にとらないものもあります。そんな場合でもカテゴリごとに色分けをする方法を紹介します。


環境はpython: 3.7.4 seaborn: 0.9.0



引数hueとは


まずはcountplotメソッドでhueを使ってみましょう。データはtitanicです。


import pandas as pd
import seaborn as sns

data=pd.read_csv("train.csv")

sns.countplot(x='Embarked', data=data, hue='Survived')

このように'Survived'のカテゴリ毎に色分けしてグラフを描いてくれます。



hueを引数に持たない場合


さて、ここからが本題。例えばseabornのdistplotメソッドにはhueという引数はありません。(seaborn.distplot

でも、あるカテゴリごとの分布が見たい場合もありますよね。そんな場合に使えるのがFacetGridです。


g=sns.FacetGrid(data, hue='Survived', size=5)
g.map(sns.distplot, "Fare")
g.add_legend()

このように、FacetGridメソッドのhueに指定してあげればhueを引数に持たないグラフにも対応できます。(FacetGridについてより詳しくは、SeabornのFacetGridでプロットして可視化 などを参考にしてください)



まとめ


distplot、kdeplotなどhueを引数に持たないグラフで色分けしたい場合はFacetGridを使いましょう。

最新記事

すべて表示

[Python]pandas.DataFrameをjsonで出力

概要 pythonでデータ解析を行っている。解析自体はpandasを用いて行い、最終結果はpandas.DataFrameの形式で保持されている。 この結果を他のアプリケーションで利用するため、json形式でファイル出力したい。 やり方 1 pandas.DataFrameをdictionaryに変換 data = df.to_dict(orient='records') 2 ファイルに出力 wi

[Python] 条件付きでフィッティングをする

概要 フィッティングを行いたい場合、pythonならばscipy.optimize.leastsqなどでできます。 しかし、フィッティングを行う場合、フィッティングパラメータに条件を付けたい場合も多々あります。 例えば、下記のようにパラメータa、bは共に正の範囲で最適な値を求める、という感じです。 f(x, a, b)=a*x^2+b (a>0 and b>0) 今回はそんな手法についてご紹介しま

あなたの買い物をサポートする
アプリ Shop Plan

iphone6.5p2.png

​いつ何を買うかの計画を立てられるアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

靴を大切にしよう!靴管理アプリ SHOES_KEEP

納品:iPhone6.5①.png

靴の履いた回数、お手入れ回数を管理するアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

「後で読む」を忘れないアプリ ArticleReminder

気になった​Webサイトを登録し、指定時刻にリマインダを送れるアプリです

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png
bottom of page