HOWTO · Seaborn
Seaborn プロットの背景色を設定する
このチュートリアルでは、Python で Seaborn プロットの背景色を設定する方法を説明します。set_style、set_palette、Figure の背景の直接設定など、プロットをカスタマイズするさまざまな方法を学びます。魅力的な背景でデータの可視化を高め、洞察を際立たせましょう。データのストーリーを効果的に伝える、統一感のある視覚的に魅力的なグラフィックを作成するテクニックを探ります。
このページの内容
Seabornのプロットに正確な背景色を指定するには、Matplotlibの axes.facecolor と figure.facecolor の設定を seaborn.set() に渡します。Axesの設定はプロット領域を、Figureの設定はその周囲のキャンバスを着色します。手早く統一感のある見た目にするなら、代わりに seaborn.set_style() でプリセットを選びます。特定の色が必要なら色を直接指定し、背景、グリッド、目盛りのスタイルをまとめて整えたいならプリセットを使います。
SeabornとMatplotlibで背景色を正確に指定する
変更したいMatplotlibの設定をまとめた rc 辞書を seaborn.set() に渡します。色名と16進数文字列のどちらも使えます。次の自己完結型の例では、プロット領域を淡い青色に、Figureのキャンバスをほぼ白色に設定してから、Figureを保存します。
この例を実行します。
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(rc={
"axes.facecolor": "#EAF2F8",
"figure.facecolor": "#F7F9FC",
})
fig, ax = plt.subplots()
sns.scatterplot(x=[1, 2, 3], y=[2, 4, 3], ax=ax)
fig.savefig("seaborn-background.png", dpi=150, bbox_inches="tight")
どちらかの色の値を lightblue のような色名や、別の16進数カラーコードに変更できます。設定はこの呼び出しの後に作成されるプロットに適用されます。単一のAxesやFigureだけを変更する場合は、以下のように対象の背景色を直接設定します。
Seabornのスタイルで背景を選ぶ
seaborn.set_style() は、複数の見た目の設定をまとめて制御するプリセットを選びます。利用できるスタイルは darkgrid、whitegrid、dark、white、ticks です。たとえば sns.set_style("whitegrid") はAxesを明るい背景にしてグリッド線を表示し、sns.set_style("dark") はグリッドのない暗いプロット領域にします。スタイルは背景以外も変えるため、グリッドや目盛りがデータに合うものを選んでください。
パレットはデータ系列に割り当てる色を制御し、コンテキストはラベルや線のサイズなどの尺度を調整します。sns.set_palette("deep") や sns.set_context("notebook") を使うと、スタイルに合わせてプロットのマークや文字の見た目を整えられますが、どちらも背景色は設定しません。スタイル、パレット、コンテキスト、rc の設定をまとめて指定するには、sns.set() を使えます。
FigureとAxesの背景を直接設定する
色を特定のFigureやプロット領域だけに適用したい場合は、Matplotlibのオブジェクトを使います。fig, ax = plt.subplots() の後に fig.patch.set_facecolor("#F7F9FC") を呼び出すと、Axesの周囲の余白も含めてFigure全体のキャンバスが変わります。ax.set_facecolor("#EAF2F8") が変えるのは、そのAxesのプロット領域だけです。複数のプロットを含むFigureでAxesごとに異なる背景色が必要な場合に便利です。色を個別に変えたいAxesごとに set_facecolor() を呼び出してください。
Seaborn経由で渡す figure.facecolor と axes.facecolor の値は、その後に作成されるFigureとAxesのデフォルトになります。直接設定する方法は、すでに作成した特定のオブジェクトを対象にするため、適用範囲が明確で、後から作るプロットの設定にも影響しません。
プロットのスタイルを整え、Figureを保存して見やすさを確認する
上の例では、Seabornの散布図に背景色を直接指定し、fig.savefig() で保存します。プロットを作成して色を設定した後、Figureの保存メソッドを呼び出してください。代わりに plt.savefig() を使う場合は、保存したいFigureが現在の対象になっている間に呼び出します。保存前にプロットを画面に表示する必要はありません。
背景、データのマーク、ラベル、グリッド線の間に十分なコントラストを確保してください。暗い背景には明るいマーク、明るい背景には暗いマークが合うことがあります。グリッド線がデータを邪魔せず、きちんと見えることも確認しましょう。Seabornでは色名や16進数文字列など、Matplotlib標準の色指定を使えます。画面上だけでなく、保存した画像でも読みやすさを保てる色を選んでください。