Python

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

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

プロット要素のスケーリング

同じコードを使用して、より大きなプロットやより小さなプロットが適切な設定で、使用に適したプロットを作成できるようになる。

まず、set_theme() を呼び出してデフォルトのパラメータをリセットする。

sns.set_theme()

4つのコンテキスト(デフォルトはnotebook、相対的な大きさの順に、paper、notebook、talk、poster)がプリセットされている。

sns.set_context("paper")
sinplot()
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()
sns.set_context("paper")
sinplot()

plt.show()
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()
sns.set_context("talk")
sinplot()

plt.show()
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()
sns.set_context("poster")
sinplot()

plt.show()

スタイル関数について知っていることのほとんどは、コンテキスト関数に引き継がれる。

これらの名前のいずれかで set_context() を呼び出してパラメータを設定したり、パラメータ値のディクショナリを指定してパラメータをオーバーライドしたりすることができる。

また、コンテキストを変更する際にフォント要素のサイズを独立して拡大縮小することもできる。(このオプションは、トップレベルの set() 関数でも利用可能)。

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()
sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
sinplot()

plt.show()

同様に、with文に入れ子になった図形の縮尺を一時的に制御できる。

スタイルとコンテキストは、set()関数で素早く設定できる。この関数はデフォルトのカラーパレットも設定できるが、これについてはチュートリアルの次のセクションで詳しく説明する。