seaborn.objects.Plot.add#

Plot.add(mark, *transforms, orient=None, legend=True, label=None, data=None, **variables)#

マークとデータ変換の観点から、ビジュアライゼーションのレイヤーを指定します。

これは、データをどのように視覚化する必要があるかを指定するための主要なメソッドです。 異なる引数で複数回呼び出して、複数のレイヤーを持つプロットを定義できます。

パラメータ:
markMark

このレイヤーで使用するデータの視覚表現。

transformsStat または Move

データをプロットする前に適用される変換を表すオブジェクト。 現在、最大で1つのStatを使用でき、最初に渡す必要があります。 この制約は将来緩和される予定です。

orient“x”、“y”、“v”、または“h”

マークの方向。変換の計算方法にも影響します。 通常、集計のグループを定義する軸に対応します。 「v」(垂直)および「h」(水平)オプションは「x」/「y」の同義語ですが、一部のマークではより直感的です。 指定しない場合、方向はデータとスケールの特性から推測されます。

legendbool

凡例からこのレイヤーのマーク/マッピングを非表示にするオプション。

labelstr

凡例でレイヤーに使用するラベル。マッピングとは無関係です。

dataDataFrame または dict

コンストラクターで提供されるグローバルソースをオーバーライドするデータソース。

variablesデータベクトルまたは識別子

レイヤー固有の追加変数。スケーリングなしで変換に直接渡される変数を含みます。

すべてのレイヤーはMarkで定義する必要があります。

p = so.Plot(tips, "total_bill", "tip").add(so.Dot())
p
../_images/objects.Plot.add_1_0.png

Plot.addを複数回呼び出して、複数のレイヤーを追加します。Markに加えて、レイヤーはStatまたはMove変換を使用して定義することもできます。

p.add(so.Line(), so.PolyFit())
../_images/objects.Plot.add_3_0.png

複数の変換をパイプラインにスタックできます。

(
    so.Plot(tips, y="day", color="sex")
    .add(so.Bar(), so.Hist(), so.Dodge())
)
../_images/objects.Plot.add_5_0.png

レイヤーには「方向」があり、変換と一部のマークに影響します。方向は通常、xyに割り当てられた変数の型から推測されますが、あいまいな場合は指定できます。

(
    so.Plot(tips, x="total_bill", y="size", color="time")
    .add(so.Dot(alpha=.5), so.Dodge(), so.Jitter(.4), orient="y")
)
../_images/objects.Plot.add_7_0.png

変数を特定のレイヤーに割り当てることができます。pointsizePlot.addに渡される方法(スケールによって*マップ*されるため)と、colorlinewidthLineに直接渡される方法(線のの色と幅を直接設定するため)の違いに注意してください。

(
    so.Plot(tips, "total_bill", "tip")
    .add(so.Dots(), pointsize="size")
    .add(so.Line(color=".3", linewidth=3), so.PolyFit())
    .scale(pointsize=(2, 10))
)
../_images/objects.Plot.add_9_0.png

プロット全体に適用される変数を、値をNoneに設定することにより、特定のレイヤーから*除外*することもできます。

(
    so.Plot(tips, "total_bill", "tip", color="day")
    .facet(col="day")
    .add(so.Dot(color="#aabc"), col=None, color=None)
    .add(so.Dot())
)
../_images/objects.Plot.add_11_0.png

変換によってのみ使用される変数は、レイヤーレベルで渡す*必要があります*。

(
    so.Plot(tips, "day")
    .add(so.Bar(), so.Hist(), weight="size")
    .label(y="Total patrons")
)
../_images/objects.Plot.add_13_0.png

各レイヤーには独自のデータソースを提供できます。コンストラクターでデータソースが提供された場合、レイヤーデータはそのインデックスを使用して結合されます。

(
    so.Plot(tips, "total_bill", "tip")
    .add(so.Dot(color="#aabc"))
    .add(so.Dot(), data=tips.query("size == 2"), color="time")
)
../_images/objects.Plot.add_15_0.png

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")
)
../_images/objects.Plot.add_17_0.png