HOWTO · Seaborn
Seaborn プロットのサイズを変更する方法
このチュートリアルでは、Python で Seaborn プロットのサイズを変更する方法を示します。
このページの内容
データサイエンスと可視化において、有益で視覚的に魅力的なチャートを作成することは非常に重要です。美しいプロットを作成するための強力なツールの 1 つが Seaborn です。Seaborn は Matplotlib の上に構築された Python のデータ可視化ライブラリです。
この記事では、height や aspect のような組み込みパラメーターを使う方法から、Matplotlib の figure()、gcf()、subplots() のような関数を使う方法まで、Python で Seaborn チャートの図のサイズを設定するさまざまな方法を紹介します。
seaborn.set() 関数を使用して Python で Seaborn チャートの図のサイズを設定する
最初に使用する方法は seaborn.set() 関数です。この関数を使うと、テーマや設定など、ライブラリの外観のさまざまな側面をカスタマイズできます。ここでは、Seaborn プロットのサイズを制御するためにこの関数を使うことに焦点を当てます。
構文:
import seaborn as sns
sns.set(rc={"figure.figsize": (width, height)})
rc パラメーターは辞書を受け取り、キーワード引数 'figure.figsize' と、図の幅と高さを含むタプルとして対応する値を指定します。width と height を図の具体的なサイズに置き換えてください。
seaborn.set() を使用して Seaborn の図のサイズを設定する例
デフォルトの図のサイズ:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Sample data
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
sns.lineplot(data=df)
plt.title("Default Figure Size")
plt.show()
最初のコードブロックでは、必要なライブラリをインポートし、サンプルデータを作成し、図のサイズを明示的に設定せずにプロットを生成しています。これはデフォルトの動作を表しています。
コード出力:
Seaborn の図のサイズを設定した後:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
sns.set(rc={"figure.figsize": (15, 8)})
p = sns.lineplot(data=df)
plt.show()
この変更したコードブロックでは、sns.set(rc={"figure.figsize": (15, 8)}) を導入し、seaborn.set() 関数を呼び出して Seaborn の図のサイズを指定しています。rc パラメーターは辞書を受け取り、この場合はキーワード引数 "figure.figsize" を幅 15 インチ、高さ 8 インチという希望の寸法に設定しています。
コード出力:
出力には、指定した幅 15 インチ、高さ 8 インチの図のサイズで折れ線プロットが表示され、視覚的な表現が希望のサイズを満たしていることが確認できます。
rcParams 関数を使用して Python で Seaborn チャートの図のサイズを設定する
seaborn.set() 関数に加えて、Seaborn の図のサイズを設定するもう 1 つの方法として、matplotlib.pyplot モジュール の rcParams 関数を使う方法があります。この 2 つ目の方法でも、プロットのスタイルを柔軟にカスタマイズできます。
rcParams 関数は、図のサイズを含む Matplotlib の動作のさまざまな側面を設定するために使用されます。図のサイズを変更するには、rcParams 内の "figure.figsize" パラメーターを対象とし、希望の寸法をタプルとして割り当てます。
構文:
from matplotlib import rcParams
rcParams["figure.figsize"] = (width, height)
width と height を図に必要な具体的な寸法に置き換えてください。
rcParams を使用して Seaborn の図のサイズを設定する例
from matplotlib import rcParams
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
rcParams["figure.figsize"] = 15, 8
p = sns.lineplot(data=df)
plt.show()
図のサイズを設定するために、rcParams["figure.figsize"] = 15, 8 を使用します。このコード行は、Matplotlib のランタイム設定パラメーターを直接変更し、幅 15 インチ、高さ 8 インチという希望のサイズを指定します。
コード出力:
matplotlib.pyplot.figure() 関数を使用して Python で Seaborn チャートの図のサイズを設定する
利用できるもう 1 つの簡単な方法は、新しい図のインスタンスを作成するために使用される matplotlib.pyplot.figure() 関数です。この関数内の figsize というパラメーターを利用することで、図オブジェクトの幅と高さをインチ単位で指定できます。
構文:
import matplotlib.pyplot as plt
plt.figure(figsize=(width, height))
width と height を図に必要な具体的な寸法に置き換えてください。この関数は、図のサイズが適切に設定されるように、プロットを作成する前に呼び出す必要があります。
matplotlib.pyplot.figure() を使用して Seaborn の図のサイズを設定する例
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
# Set the size of the figure using matplotlib.pyplot.figure()
plt.figure(figsize=(15, 8))
# Create plot
p = sns.lineplot(data=df)
plt.show()
この例では、plt.figure(figsize=(15, 8)) を使用しています。ここで figsize は図の幅と高さを表すタプルとして指定されています。この方法により、後続のプロットが指定した寸法に従うことが保証されます。
コード出力:
指定した幅 15 インチ、高さ 8 インチの Seaborn の図のサイズで折れ線プロットを正常に作成できました。
matplotlib.pyplot.gcf() 関数を使用して Python で Seaborn チャートの図のサイズを設定する
プロットのサイズをきめ細かく制御するには、matplotlib.pyplot.gcf() 関数と set_size_inches() を組み合わせることで、多用途な解決策が得られます。
matplotlib.pyplot.gcf() 関数は「現在の図を取得する(get current figure)」という意味で、現在の図のインスタンスを取得します。set_size_inches() と組み合わせることで、図のサイズを動的に調整できます。
構文:
import matplotlib.pyplot as plt
current_fig = plt.gcf()
current_fig.set_size_inches(width, height)
width と height を希望の寸法に置き換えてください。この関数は、すでにプロットを作成していて、そのサイズを変更したい場合に特に便利です。
matplotlib.pyplot.gcf() を使用して Seaborn の図のサイズを設定する例
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
p = sns.lineplot(data=df)
plt.gcf().set_size_inches(15, 8)
plt.show()
これまでの例とは異なり、ここではプロットを作成した後に plt.gcf().set_size_inches(15, 8) を使用して図のサイズを設定しています。plt.gcf() は現在の図のインスタンスを取得し、次に set_size_inches() を適用して図を幅 15 インチ、高さ 8 インチに動的に調整します。
コード出力:
ご覧のとおり、出力には指定した幅 15 インチ、高さ 8 インチの図のサイズで折れ線プロットが表示されています。
height と aspect パラメーターを使用して Python で Seaborn チャートの図のサイズを設定する
Seaborn は、lmplot、catplot、jointplot のような特定のプロットタイプ向けに height や aspect のような組み込みパラメーターを提供することで、図のサイズを調整するプロセスを簡素化しています。これらにより、追加の関数呼び出しなしに、プロットされる図のサイズを直接制御できます。
Seaborn の height パラメーターは図全体の高さを表し、aspect パラメーターはプロットのアスペクト比を制御します。
height と aspect パラメーターを使用して Seaborn の図のサイズを設定する例
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
# create plot
p = sns.catplot(data=df, height=8, aspect=15 / 8, kind="bar")
plt.show()
この例では、図のサイズを設定するために、本質的に height と aspect パラメーターをサポートしている sns.catplot() 関数を使用しています。この場合、height=8 は図の高さを 8 インチに設定し、aspect=15 / 8 は幅が 15 インチになるように比率を制御します。
コード出力:
この方法は、組み込みパラメーターを備えた Seaborn のプロットタイプを扱う場合に特に便利です。
matplotlib.pyplot.subplots() 関数を使用して Python で Seaborn チャートの図のサイズを設定する
matplotlib.pyplot.subplots() 関数は、Seaborn プロットの図のサイズを設定するための多用途な方法を提供します。この関数を使用して図と軸のオブジェクトを作成することで、プロットを生成する前に寸法を簡単にカスタマイズできます。
matplotlib.pyplot.subplots() 関数は、図と サブプロット のセットを作成するために使用されます。この関数内の figsize パラメーターにより、図全体の幅と高さをインチ単位で指定でき、個々のサブプロットには Seaborn の軸オブジェクトを通じてアクセスし、特定のプロットを割り当てることができます。
この方法は、複数のサブプロットが関係する場合に特に便利で、図全体のサイズをきめ細かく制御できます。
matplotlib.pyplot.subplots() を使用して Seaborn の図のサイズを設定する例
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
fig, ax = plt.subplots(figsize=(15, 8))
p = sns.lineplot(data=df, ax=ax)
plt.show()
この例では、重要なステップとして plt.subplots(figsize=(15, 8)) を使用し、幅 15 インチ、高さ 8 インチという指定したサイズで図と軸を作成しています。Seaborn の図をプロットする際、ax パラメーターを matplotlib.pyplot.subplots() が返した軸の配列と等しくなるように設定しています。
コード出力:
これにより、指定した幅 15 インチ、高さ 8 インチの Seaborn の図のプロットサイズで折れ線プロットを正常に生成できました。
結論
この記事では、Python で Seaborn チャートの図のサイズを設定するためのさまざまな方法を、いくつかの例とともに包括的に紹介しました。Seaborn の height や aspect のような組み込みパラメーター、matplotlib.pyplot.figure() 関数、matplotlib.pyplot.gcf() 関数、matplotlib.pyplot.subplots() のいずれを使用する場合でも、各方法はプロットの視覚的な表現を調整するための独自の方法を提供します。
これらのテクニックを習得することで、視覚的にインパクトのある Seaborn の可視化を通じて複雑な情報を伝える能力が高まります。これはデータサイエンスの要です。
次のステップとして、高度な統計的可視化を探求することは刺激的な道となるでしょう。具体的には、相関分析のための Seaborn ヒートマップ というトピックを深く掘り下げることで、データ可視化のスキルを高めることができます。