seaborn.relplot#

seaborn.relplot(data=None, **, x=None, y=None, hue=None,(... 省略 ...))#

FacetGrid上にリレーショナルプロットを描画するための図レベルのインターフェースです。

この関数は、サブセットのセマンティックマッピングを使用して2つの変数間の関係を示す、いくつかの異なる軸レベルの関数へのアクセスを提供します。`kind` パラメータは、使用する軸レベルの関数を以下から選択します。

追加のキーワード引数は、基になる関数に渡されるため、種類固有のオプションについては、それぞれのドキュメントを参照する必要があります。

`x` と `y` の関係は、`hue`、`size`、`style` パラメータを使用して、データの異なるサブセットについて表示できます。 これらのパラメータは、異なるサブセットを識別するために使用される視覚的なセマンティクスを制御します。 3つのセマンティックタイプすべてを使用することで、最大3次元まで独立して表示できますが、このスタイルのプロットは解釈が難しく、効果がないことがよくあります。 冗長なセマンティクス(つまり、同じ変数に `hue` と `style` の両方を使用する)は、グラフィックのアクセシビリティを向上させるのに役立ちます。

詳細はチュートリアルを参照してください。

`hue`(および程度は少ないですが `size`)セマンティクスのデフォルトの扱いは、変数が「数値」データまたは「カテゴリ」データを表すと推測されるかどうかによって異なります。 特に、数値変数はデフォルトで連続的なカラーマップで表され、凡例のエントリには、データに存在する可能性のある値または存在しない可能性のある値を持つ規則的な「目盛り」が表示されます。 この動作は、以下で説明および図示するように、さまざまなパラメータを通じて制御できます。

プロット後、プロットを含む FacetGrid が返され、それを直接使用して補助的なプロットの詳細を調整したり、他のレイヤーを追加したりできます。

パラメータ:
**data**pandas.DataFrame, numpy.ndarray, マッピング、またはシーケンス

入力データ構造。 名前付き変数に割り当てることができるベクトルのlong-formコレクション、または内部的に形状変更されるwide-formデータセット。

**x, y**`data` 内のベクトルまたはキー

x軸とy軸上の位置を指定する変数。

hueベクトルまたは data 内のキー

異なる色の要素を生成するグループ化変数。カテゴリ型または数値型のいずれかを使用できますが、後者の場合、カラーマッピングの動作が異なります。

sizeベクトルまたは data 内のキー

異なるサイズの要素を生成するグループ化変数。カテゴリ型または数値型のいずれかを使用できますが、後者の場合、サイズマッピングの動作が異なります。

styleベクトルまたは data 内のキー

異なるスタイルの要素を生成するグループ化変数。数値型のdtypeを持つことができますが、常にカテゴリ型として扱われます。

unitsベクトルまたは data 内のキー

サンプリング単位を識別するグループ化変数。使用すると、適切なセマンティクスで各ユニットに個別の線が描画されますが、凡例エントリは追加されません。正確なIDが必要ない場合に、実験レプリケートの分布を表示するのに役立ちます。

weightsベクトルまたは data 内のキー

重み付き推定の計算に使用されるデータ値または列。重みを使用すると、現在、統計量の選択肢が「平均」推定量と「ci」エラーバーに制限されることに注意してください。

row, colベクトルまたは data 内のキー

異なるファセットにプロットするサブセットを定義する変数。

col_wrap整数

列ファセットが複数の行にまたがるように、この幅で列変数を「ラップ」します。row ファセットと互換性がありません。

row_order, col_order文字列のリスト

グリッドの行または列、あるいはその両方を整理する順序。指定しない場合、順序はデータオブジェクトから推測されます。

palette文字列、リスト、辞書、または matplotlib.colors.Colormap

hue セマンティクスをマッピングするときに使用する色を選択する方法。文字列値は color_palette() に渡されます。リストまたは辞書値はカテゴリマッピングを意味し、カラーマップオブジェクトは数値マッピングを意味します。

hue_order文字列のベクトル

hue セマンティクスのカテゴリレベルの処理とプロットの順序を指定します。

hue_normタプルまたは matplotlib.colors.Normalize

データ単位で正規化範囲を設定する値のペア、またはデータ単位を[0, 1]区間にマッピングするオブジェクトのいずれか。使用は数値マッピングを意味します。

sizesリスト、辞書、またはタプル

size が使用される場合にサイズの選択方法を決定するオブジェクト。リストまたは辞書の引数は、各固有のデータ値のサイズを提供する必要があり、カテゴリ解釈を強制します。引数は、最小値、最大値のタプルにすることもできます。

size_orderリスト

size 変数レベルの表示順序を指定します。指定しない場合、データから決定されます。size 変数が数値の場合は関係ありません。

size_normタプルまたはNormalizeオブジェクト

size 変数が数値の場合にプロットオブジェクトをスケーリングするためのデータ単位での正規化。

style_orderリスト

style 変数レベルの表示順序を指定します。指定しない場合、データから決定されます。style 変数が数値の場合は関係ありません。

dashesブール値、リスト、または辞書

style 変数の異なるレベルの線を描画する方法を決定するオブジェクト。True に設定するとデフォルトの破線コードが使用されます。または、破線コードのリスト、または style 変数のレベルを破線コードにマッピングする辞書を渡すことができます。False に設定すると、すべてのサブセットに実線が使用されます。破線はmatplotlibのように指定されます:(segment, gap) 長さのタプル、または実線を描画するための空の文字列。

markersブール値、リスト、または辞書

style 変数の異なるレベルのマーカーを描画する方法を決定するオブジェクト。True に設定するとデフォルトのマーカーが使用されます。または、マーカーのリスト、または style 変数のレベルをマーカーにマッピングする辞書を渡すことができます。False に設定すると、マーカーのない線が描画されます。マーカーはmatplotlibのように指定されます。

legend“auto”, “brief”, “full”, または False

凡例を描画する方法。"brief"の場合、数値の hue 変数と size 変数は、等間隔の値のサンプルで表されます。"full"の場合、すべてのグループが凡例にエントリを取得します。"auto"の場合、レベルの数に基づいてbriefまたはfullのどちらかの表現を選択します。False の場合、凡例データは追加されず、凡例は描画されません。

kind文字列

描画するプロットの種類。seabornリレーショナルプロットに対応します。オプションは "scatter" または "line" です。

heightスカラー

各ファセットの高さ(インチ単位)。aspect も参照してください。

aspectスカラー

各ファセットのアスペクト比。aspect * height は、各ファセットの幅をインチ単位で表します。

facet_kws辞書

FacetGrid に渡す他のキーワード引数の辞書。

kwargsキーと値のペア

他のキーワード引数は、基になるプロット関数に渡されます。

戻り値:
FacetGrid

軸属性のバッチ設定に便利なメソッドを使用して、条件付きデータサブセットに対応する1つ以上のサブプロットを管理するオブジェクト。

これらの例は、relplot() が capable な機能の一部のみを示しています。詳細については、kind="scatter" または kind="line" の場合に使用される scatterplot() および lineplot() の例を参照してください。

kind="scatter"(デフォルトのプロットスタイル)を示すために、「tips」データセットを使用します

tips = sns.load_dataset("tips")
tips.head()
total_bill (合計請求額) tip (チップ) sex (性別) smoker (喫煙者) day (曜日) time (時間帯) size (人数)
0 16.99 1.01 Female (女性) No (いいえ) Sun (日曜日) Dinner (夕食) 2
1 10.34 1.66 Male (男性) No (いいえ) Sun (日曜日) Dinner (夕食) 3
2 21.01 3.50 Male (男性) No (いいえ) Sun (日曜日) Dinner (夕食) 3
3 23.68 3.31 Male (男性) No (いいえ) Sun (日曜日) Dinner (夕食) 2
4 24.59 3.61 Female (女性) No (いいえ) Sun (日曜日) Dinner (夕食) 4

xy、およびセマンティックマッピング変数を割り当てると、単一のプロットが描画されます

sns.relplot(data=tips, x="total_bill", y="tip", hue="day")
../_images/relplot_4_0.png

col 変数を割り当てると、グリッドの列全体に配置された複数のサブプロットを持つファセット図が作成されます

sns.relplot(data=tips, x="total_bill", y="tip", hue="day", col="time")
../_images/relplot_6_0.png

列と行の両方で異なる変数をファセットに割り当てることができます

sns.relplot(data=tips, x="total_bill", y="tip", hue="day", col="time", row="sex")
../_images/relplot_8_0.png

col に割り当てられた変数に多くのレベルがある場合、複数の行に「ラップ」できます

sns.relplot(data=tips, x="total_bill", y="tip", hue="time", col="day", col_wrap=2)
../_images/relplot_10_0.png

複数のセマンティック変数を割り当てると、多次元関係を示すことができますが、過度に複雑なプロットを作成しないように注意してください。

sns.relplot(
    data=tips, x="total_bill", y="tip", col="time",
    hue="time", size="size", style="sex",
    palette=["b", "r"], sizes=(10, 100)
)
../_images/relplot_12_0.png

変数の1つに自然な連続性がある場合、点ではなく線を表示する方が理にかなっています。lineplot() を使用して図を描画するには、kind="line" を設定します。「fmri」データセットを使用してこの効果を示します

fmri = sns.load_dataset("fmri")
fmri.head()
subject (被験者) timepoint (時点) event (イベント) region (領域) signal (信号)
0 s13 18 stim (刺激) parietal (頭頂) -0.017552
1 s5 14 stim (刺激) parietal (頭頂) -0.080883
2 s12 18 stim (刺激) parietal (頭頂) -0.081033
3 s11 18 stim (刺激) parietal (頭頂) -0.046134
4 s10 18 stim (刺激) parietal (頭頂) -0.037970

kind="line" を使用すると、kind="scatter" と同様にセマンティックマッピングに柔軟性を持たせることができますが、lineplot() はプロット前にデータをより多く変換します。観測値は x 値でソートされ、繰り返される観測値は集計されます。デフォルトでは、結果のプロットは各ユニットの平均と95%信頼区間を示します。

sns.relplot(
    data=fmri, x="timepoint", y="signal", col="region",
    hue="event", style="event", kind="line",
)
../_images/relplot_16_0.png

図のサイズと形状は、各ファセットの heightaspect 比によってパラメータ化されます。

sns.relplot(
    data=fmri,
    x="timepoint", y="signal",
    hue="event", style="event", col="region",
    height=4, aspect=.7, kind="line"
)
../_images/relplot_18_0.png

relplot() によって返されるオブジェクトは、常に FacetGrid です。これには、タイトル、ラベル、およびプロットの他の側面をすばやく調整できるいくつかのメソッドがあります。

g = sns.relplot(
    data=fmri,
    x="timepoint", y="signal",
    hue="event", style="event", col="region",
    height=4, aspect=.7, kind="line"
)
(g.map(plt.axhline, y=0, color=".7", dashes=(2, 1), zorder=0)
  .set_axis_labels("Timepoint", "Percent signal change")
  .set_titles("Region: {col_name} cortex")
  .tight_layout(w_pad=0))
../_images/relplot_20_0.png

relplot() でワイド形式のデータを使用することもできます。

flights_wide = (
    sns.load_dataset("flights")
    .pivot(index="year", columns="month", values="passengers")
)

この場合、ファセット化はオプションではありませんが、プロットは依然として FacetGrid によって提供される外部凡例の利点を活用します。

sns.relplot(data=flights_wide, kind="line")
../_images/relplot_24_0.png