seaborn.objects.Plot.add#
- Plot.add(mark, *transforms, orient=None, legend=True, label=None, data=None, **variables)#
マークとデータ変換の観点から、ビジュアライゼーションのレイヤーを指定します。
これは、データをどのように視覚化する必要があるかを指定するための主要なメソッドです。 異なる引数で複数回呼び出して、複数のレイヤーを持つプロットを定義できます。
- パラメータ:
- mark
Mark
このレイヤーで使用するデータの視覚表現。
- transforms
Stat
またはMove
データをプロットする前に適用される変換を表すオブジェクト。 現在、最大で1つの
Stat
を使用でき、最初に渡す必要があります。 この制約は将来緩和される予定です。- orient“x”、“y”、“v”、または“h”
マークの方向。変換の計算方法にも影響します。 通常、集計のグループを定義する軸に対応します。 「v」(垂直)および「h」(水平)オプションは「x」/「y」の同義語ですが、一部のマークではより直感的です。 指定しない場合、方向はデータとスケールの特性から推測されます。
- legendbool
凡例からこのレイヤーのマーク/マッピングを非表示にするオプション。
- labelstr
凡例でレイヤーに使用するラベル。マッピングとは無関係です。
- dataDataFrame または dict
コンストラクターで提供されるグローバルソースをオーバーライドするデータソース。
- variablesデータベクトルまたは識別子
レイヤー固有の追加変数。スケーリングなしで変換に直接渡される変数を含みます。
- mark
例
すべてのレイヤーは
Mark
で定義する必要があります。p = so.Plot(tips, "total_bill", "tip").add(so.Dot()) p
Plot.add
を複数回呼び出して、複数のレイヤーを追加します。Mark
に加えて、レイヤーはStat
またはMove
変換を使用して定義することもできます。p.add(so.Line(), so.PolyFit())
複数の変換をパイプラインにスタックできます。
( so.Plot(tips, y="day", color="sex") .add(so.Bar(), so.Hist(), so.Dodge()) )
レイヤーには「方向」があり、変換と一部のマークに影響します。方向は通常、
x
とy
に割り当てられた変数の型から推測されますが、あいまいな場合は指定できます。( so.Plot(tips, x="total_bill", y="size", color="time") .add(so.Dot(alpha=.5), so.Dodge(), so.Jitter(.4), orient="y") )
変数を特定のレイヤーに割り当てることができます。
pointsize
がPlot.add
に渡される方法(スケールによって*マップ*されるため)と、color
とlinewidth
がLine
に直接渡される方法(線のの色と幅を直接設定するため)の違いに注意してください。( so.Plot(tips, "total_bill", "tip") .add(so.Dots(), pointsize="size") .add(so.Line(color=".3", linewidth=3), so.PolyFit()) .scale(pointsize=(2, 10)) )
プロット全体に適用される変数を、値を
None
に設定することにより、特定のレイヤーから*除外*することもできます。( so.Plot(tips, "total_bill", "tip", color="day") .facet(col="day") .add(so.Dot(color="#aabc"), col=None, color=None) .add(so.Dot()) )
変換によってのみ使用される変数は、レイヤーレベルで渡す*必要があります*。
( so.Plot(tips, "day") .add(so.Bar(), so.Hist(), weight="size") .label(y="Total patrons") )
各レイヤーには独自のデータソースを提供できます。コンストラクターでデータソースが提供された場合、レイヤーデータはそのインデックスを使用して結合されます。
( so.Plot(tips, "total_bill", "tip") .add(so.Dot(color="#aabc")) .add(so.Dot(), data=tips.query("size == 2"), color="time") )
label
を提供すると、プロットの凡例にレイヤーが注釈されます。( so.Plot(tips, x="size") .add(so.Line(color="C1"), so.Agg(), y="total_bill", label="Bill") .add(so.Line(color="C2"), so.Agg(), y="tip", label="Tip") .label(y="Value") )