seaborn.relplot#
- seaborn.relplot(data=None, **, x=None, y=None, hue=None,(... 省略 ...))#
FacetGrid上にリレーショナルプロットを描画するための図レベルのインターフェースです。
この関数は、サブセットのセマンティックマッピングを使用して2つの変数間の関係を示す、いくつかの異なる軸レベルの関数へのアクセスを提供します。`kind` パラメータは、使用する軸レベルの関数を以下から選択します。
scatterplot()
(`kind="scatter"`、デフォルト)lineplot()
(`kind="line"`)
追加のキーワード引数は、基になる関数に渡されるため、種類固有のオプションについては、それぞれのドキュメントを参照する必要があります。
`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キーと値のペア
他のキーワード引数は、基になるプロット関数に渡されます。
- **data**
- 戻り値:
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 x
とy
、およびセマンティックマッピング変数を割り当てると、単一のプロットが描画されますsns.relplot(data=tips, x="total_bill", y="tip", hue="day")
col
変数を割り当てると、グリッドの列全体に配置された複数のサブプロットを持つファセット図が作成されますsns.relplot(data=tips, x="total_bill", y="tip", hue="day", col="time")
列と行の両方で異なる変数をファセットに割り当てることができます
sns.relplot(data=tips, x="total_bill", y="tip", hue="day", col="time", row="sex")
col
に割り当てられた変数に多くのレベルがある場合、複数の行に「ラップ」できますsns.relplot(data=tips, x="total_bill", y="tip", hue="time", col="day", col_wrap=2)
複数のセマンティック変数を割り当てると、多次元関係を示すことができますが、過度に複雑なプロットを作成しないように注意してください。
sns.relplot( data=tips, x="total_bill", y="tip", col="time", hue="time", size="size", style="sex", palette=["b", "r"], sizes=(10, 100) )
変数の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", )
図のサイズと形状は、各ファセットの
height
とaspect
比によってパラメータ化されます。sns.relplot( data=fmri, x="timepoint", y="signal", hue="event", style="event", col="region", height=4, aspect=.7, kind="line" )
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))
relplot()
でワイド形式のデータを使用することもできます。flights_wide = ( sns.load_dataset("flights") .pivot(index="year", columns="month", values="passengers") )
この場合、ファセット化はオプションではありませんが、プロットは依然として
FacetGrid
によって提供される外部凡例の利点を活用します。sns.relplot(data=flights_wide, kind="line")