読者です 読者をやめる 読者になる 読者になる

計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

Seabornの色見本

Python

Seabornのメモ

前々回:Seabornのスタイル見本 - 計算物理屋の研究備忘録
前回:Seabornのコンテキスト見本 - 計算物理屋の研究備忘録

グラフも前回のものを使う

カラーパレット

公式サイトのチュートリアルを参考

Choosing color palettes — seaborn 0.7.1 documentation

Seabornでは、Seabornで用意されているカラーパレットとか、matplotlibのカラーマップ?とかいろいろ使える。

Seabornのカラーパレット

Qualitative (or categorical) palettes が6個用意されている。色で見分けやすいカラーマップ。ただし6色まで。

  • deep
  • muted
  • pastel
  • bright
  • dark
  • colorblind

使い方はplot前にsns.set_palette('deep')みたいにするだけ。

import seaborn as sns
sns.set_palette('deep')    # デフォルト
#sns.set_palette('muted')
#sns.set_palette('pastel')
#sns.set_palette('bright')
#sns.set_palette('dark')
#sns.set_palette('colorblind')
sinplot()    # 関数はすでに定義済みとして

Qualitative palettes一覧

deep muted
f:id:keisanbutsuriya:20160601014037p:plain:w300 f:id:keisanbutsuriya:20160607013512p:plain:w300
pastel bright
f:id:keisanbutsuriya:20160607013905p:plain:w300 f:id:keisanbutsuriya:20160607014011p:plain:w300
dark colorblind
f:id:keisanbutsuriya:20160607014342p:plain:w300 f:id:keisanbutsuriya:20160607014351p:plain:w300

他にもcircular color systemsというのに、hlsとhuslというものがある。これは数字を指定することで6色以上使える。

6本以上線を書くための簡単な関数をつくってプロットしてみる。
12本線を引いて、12色使うようにしてみた

def axb():
    x = np.linspace(0, 10, 100)
    for i in np.linspace(0, 5, 12):
        plt.plot(x, x+i)

sns.set_palette('hls', 12)
#sns.set_palette('husl', 12)
axb()

hlsとhusl

hls husl
f:id:keisanbutsuriya:20160607015406p:plain:w300 f:id:keisanbutsuriya:20160607015419p:plain:w300

matplotlibのカラーマップ

matploblitのカラーマップはここに色々載っている

color example code: colormaps_reference.py — Matplotlib 1.5.1 documentation

たとえば、matplotlibのSequential colormapsのBluesをSeabornではこのように使う

sns.set_palette('Blues', 12)  # 12色
axb()
Blues
f:id:keisanbutsuriya:20160607020557p:plain:w300

他にも例えば、Set1なんかは9色まで使えてある程度色が判別しやすい。

sns.set_palette('Set1', 12)    # 9色で一回りしてしまう
axb()
Set1
f:id:keisanbutsuriya:20160607022319p:plain:w300

sns.light_palette と sns.dark_palette

色の名前を指定して、その色を基本とするsequential palettesを作成できる。明るいのがlight_paletteで、暗いのがdark_palette。

sns.light_palette()で作成したパレットをsns.set_palette()に入れて使う感じ
ここで使っているgreenはカラーパレットじゃなく、ただの色の名前。

sns.set_palette(sns.light_palette('green', 12))
#sns.set_palette(sns.dark_palette('green', 12))
axb()
light_palette dark_palette
f:id:keisanbutsuriya:20160607021519p:plain:w300 f:id:keisanbutsuriya:20160607021533p:plain:w300