Python

Python seaborn チュートリアル プロットの美学 制御 (1)

原文のドキュメントはこちらから。

seaborn の図形スタイル

自分のために図を作るとき、魅力的な図を描くことが大切である。データセットを探る際にも心地よい。また、定量的な洞察を聴衆に伝えるためには、可視化が中心となるが、その際には、目に留まり、見ている人を惹きつけるような図がさらに必要である。

Matplotlibはカスタマイズ性に優れているが、魅力的なプロットを実現するには、どのような設定をすればよいのかがわかりにくい場合がある。seabornには、カスタマイズされたテーマが多数用意されており、matplotlibの図形の見た目をコントロールするための高度なインターフェースが用意されている。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

オフセットサイン波をプロットする簡単な関数を定義してmatplotlibのデフォルトでプロットする。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sinplot()

plt.show()

seabornのデフォルトに切り替えるには、set_theme()関数を呼び出す。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sns.set_theme()
sinplot()

plt.show()

(0.8以前のseabornのバージョンでは、set_theme()はインポート時に呼び出されていたことに注意が必要。それ以降のバージョンでは、明示的に呼び出す必要がある。)

seabornはmatplotlibのパラメータを2つの独立したグループに分割する。最初のグループはプロットの美的スタイルを設定し、2番目のグループは図の様々な要素をスケーリングして、様々な文脈に簡単に取り入れることができるようにする。

これらのパラメータを操作するためのインターフェースは、2組の関数だ。スタイルを制御するには、axis_style()関数とset_style()関数を使用する。プロットの拡大縮小には plotting_context() と set_context() 関数を使用する。どちらの場合も、最初の関数はパラメータのディクショナリを返し、2 番目の関数は matplotlib のデフォルトを設定する。