seaborn.boxenplot#
- seaborn.boxenplot(data=None, *, x=None, y=None, hue=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, fill=True, dodge='auto', width=0.8, gap=0, linewidth=None, linecolor=None, width_method='exponential', k_depth='tukey', outlier_prop=0.007, trust_alpha=0.05, showfliers=True, hue_norm=None, log_scale=None, native_scale=False, formatter=None, legend='auto', scale=<deprecated>, box_kws=None, flier_kws=None, line_kws=None, ax=None, **kwargs)#
より大きなデータセットのための拡張された箱ひげ図を描画します。
このスタイルのプロットは、もともと「レター値」として定義された多数の分位数を示すことから、「レター値」プロットと名付けられました。これは、すべての特徴が実際の観測に対応する分布のノンパラメトリック表現をプロットする点で箱ひげ図に似ています。より多くの分位数をプロットすることで、特にテールにおける分布の形状に関するより多くの情報を提供します。
詳細については、チュートリアルを参照してください。
注釈
デフォルトでは、この関数は変数の1つをカテゴリ変数として扱い、関連する軸上の順序位置(0、1、… n)にデータを描画します。バージョン0.13.0以降、
native_scale=True
を設定することでこれを無効にできます。- パラメータ:
- dataDataFrame、Series、dict、array、または配列のリスト
プロット用のデータセット。
x
とy
がない場合、これはワイド形式として解釈されます。それ以外の場合は、ロング形式であることが期待されます。- x、y、hue
data
またはベクトルデータ内の変数の名前 ロング形式データをプロットするための入力。解釈については、例を参照してください。
- order、hue_order文字列のリスト
カテゴリレベルをプロットする順序。それ以外の場合、レベルはデータオブジェクトから推測されます。
- orient“v” | “h” | “x” | “y”
プロットの方向(垂直または水平)。これは通常、入力変数のタイプに基づいて推測されますが、
x
とy
の両方が数値である場合や、ワイド形式のデータをプロットする場合に、あいまいさを解消するために使用できます。バージョンv0.13.0で変更: 'x'/'y'を'v'/'h'と同等のオプションとして追加。
- colormatplotlibの色
プロット内の要素の単一の色。
- paletteパレット名、リスト、または辞書
hue
変数の異なるレベルに使用する色。color_palette()
、またはmatplotlibの色への色相レベルのマッピングを解釈できるものである必要があります。- saturationfloat
塗りつぶし色を描画する際の元の彩度の割合。大きなパッチは彩度が低い色の方が見栄えがよくなりますが、色を入力値に完全に一致させたい場合はこれを
1
に設定してください。- fillbool
Trueの場合、塗りつぶしパッチを使用します。それ以外の場合は、線画として描画します。
バージョンv0.13.0で新規追加。
- dodge"auto"またはbool
色相マッピングが使用される場合、要素が重複をなくすために方向軸に沿って狭められ、シフトされる必要があるかどうか。
"auto"
の場合、向き変数がカテゴリ変数と交差している場合はTrue
に設定し、そうでない場合はFalse
に設定します。バージョン0.13.0で変更: 新しいデフォルトとして
"auto"
モードを追加。- widthfloat
向き軸の各要素に割り当てられた幅。
native_scale=True
の場合、ネイティブスケールでの2つの値間の最小距離に相対的です。- gapfloat
方向軸上でこの係数だけ縮小し、ドッジされた要素間にギャップを追加します。
バージョン0.13.0で新規追加。
- linewidthfloat
プロット要素をフレーム化する線の幅。
- linecolor色
fill
がTrueの場合、線要素に使用する色。バージョンv0.13.0で新規追加。
- width_method{“exponential”, “linear”, “area”}
レター値ボックスの幅に使用する方法
"exponential"
: 対応するパーセンタイルを表します"linear"
: ボックスごとに一定量ずつ減少します"area"
: そのボックス内のデータポイントの密度を表します
- k_depth{“tukey”, “proportion”, “trustworthy”, “full”} または int
各テールで計算して描画するレベル数
"tukey"
: log2(n) - 3レベルを使用し、箱ひげ図のひげと同じ範囲をカバーします"proportion"
: およそoutlier_prop
個の飛び地を残します"trusthworthy"
: 信頼度が少なくともtrust_alpha
のレベルまで拡張します"full"
: log2(n) + 1レベルを使用し、最も極端な点まで拡張します
- outlier_propfloat
外れ値と予想されるデータの割合。
k_depth="proportion"
の場合に使用されます。- trust_alphafloat
最極端なレベルに対する信頼度の閾値。
k_depth="trustworthy"
の場合に使用されます。- showfliersbool
Falseの場合、外れ値のプロットを抑制します。
- hue_normtuple または (Matplotlib v3.8.2 の)
matplotlib.colors.Normalize
オブジェクト 数値の場合、
hue
変数に適用されるカラーマップのデータ単位での正規化。hue
がカテゴリカルな場合は無関係です。バージョン v0.12.0 で新規追加。
- log_scalebool または数値、あるいは bool または数値のペア
軸のスケールを対数に設定します。単一の値は、プロット内の任意の数値軸のデータ軸を設定します。値のペアは、各軸を独立して設定します。数値は、希望の基数 (デフォルトは10) として解釈されます。
None
またはFalse
の場合、seaborn は既存の軸スケールに従います。バージョンv0.13.0で新規追加。
- native_scalebool
True の場合、カテゴリカル軸の数値または日付時刻値は、固定インデックスに変換されるのではなく、元のスケーリングを維持します。
バージョンv0.13.0で新規追加。
- formattercallable
カテゴリデータを文字列に変換する関数。グループ化と目盛ラベルの両方に影響します。
バージョンv0.13.0で新規追加。
- legend"auto"、"brief"、"full"、または False
凡例の描画方法。"brief" の場合、数値の
hue
およびsize
変数は、均等に間隔を空けた値のサンプルで表されます。"full" の場合、すべてのグループが凡例にエントリを取得します。"auto" の場合、レベルの数に基づいて brief または full の表現を選択します。False
の場合、凡例データは追加されず、凡例は描画されません。バージョンv0.13.0で新規追加。
- box_kws: dict
ボックスアーティストのキーワード引数。(Matplotlib v3.8.2 の)
matplotlib.patches.Rectangle
に渡されます。バージョン v0.12.0 で新規追加。
- line_kws: dict
中央値を表す線のキーワード引数。(Matplotlib v3.8.2 の)
matplotlib.axes.Axes.plot()
に渡されます。バージョン v0.12.0 で新規追加。
- flier_kws: dict
外れ値の観測値を表す散布図のキーワード引数。(Matplotlib v3.8.2 の)
matplotlib.axes.Axes.scatter()
に渡されます。バージョン v0.12.0 で新規追加。
- axmatplotlib Axes
プロットを描画する Axes オブジェクト。それ以外の場合は現在の Axes を使用します。
- kwargsキーと値のマッピング
その他のキーワード引数は、(Matplotlib v3.8.2 の)
matplotlib.patches.Rectangle
に渡されます。box_kws
内のものによって上書きされます。
- 戻り値:
- axmatplotlib Axes
プロットが描画された Axes オブジェクトを返します。
関連事項
violinplot
箱ひげ図とカーネル密度推定の組み合わせ。
boxplot
同様の API を持つ従来の箱ひげ図。
catplot
カテゴリカルプロットを
FacetGrid
と組み合わせます。
注釈
より詳しい説明については、プロットを紹介した論文を読むことができます: https://vita.had.co.nz/papers/letter-value-plot.html
例
単一の水平プロットを描画し、データを直接座標変数に割り当てます
sns.boxenplot(x=diamonds["price"])
データフレーム内の列を参照して、カテゴリカル変数でグループ化します
sns.boxenplot(data=diamonds, x="price", y="clarity")
別の変数でグループ化し、ボックスの色で表現します。デフォルトでは、各ボックスプロットは重ならないように「ドッジ」されます。間に小さなギャップを追加することもできます
large_diamond = diamonds["carat"].gt(1).rename("large_diamond") sns.boxenplot(data=diamonds, x="price", y="clarity", hue=large_diamond, gap=.2)
各ボックス幅を選択するためのデフォルトルールは、ボックスでカバーされるパーセンタイルを表します。あるいは、各ボックス幅を線形係数で縮小することもできます
sns.boxenplot(data=diamonds, x="price", y="clarity", width_method="linear")
一方、
width
パラメーター自体は、最大のボックスの幅を決定しますsns.boxenplot(data=diamonds, x="price", y="clarity", width=.5)
パーセンタイル推定の信頼水準に基づくルールを含め、描画するボックスの数を選択するためのいくつかの異なるアプローチがあります
sns.boxenplot(data=diamonds, x="price", y="clarity", k_depth="trustworthy", trust_alpha=0.01)
linecolor
およびlinewidth
パラメーターはボックスの輪郭を制御し、line_kws
パラメーターは中央値を表す線を制御し、flier_kws
パラメーターは外れ値の外観を制御しますsns.boxenplot( data=diamonds, x="price", y="clarity", linewidth=.5, linecolor=".7", line_kws=dict(linewidth=1.5, color="#cde"), flier_kws=dict(facecolor=".7", linewidth=.5), )
塗りつぶされていないボックスを描画することもできます。塗りつぶされていないボックスでは、すべての要素が線画として描画され、使用されている場合は
hue
に従いますsns.boxenplot(data=diamonds, x="price", y="clarity", hue="clarity", fill=False)