seaborn.objects.Plot.on#
- Plot.on(target)#
プロットを描画するための既存の Matplotlib の figure または axes を提供します。
このメソッドを使用する場合、
Plot.show()
またはPlot.save()
のようにコンパイルをトリガーするメソッドを明示的に呼び出す必要もあります。matplotlib を使用して後処理を行う場合は、最初にPlot.plot()
を呼び出して、レンダリングせずにプロットをコンパイルする必要があります。- パラメータ:
- targetAxes, SubFigure, または Figure
使用する Matplotlib オブジェクト。
matplotlib.axes.Axes
を渡すと、figure を変更せずにアーティストが追加されます。それ以外の場合は、指定されたmatplotlib.figure.Figure
またはmatplotlib.figure.SubFigure
の空間内にサブプロットが作成されます。
例
matplotlib.axes.Axes
オブジェクトを渡すと、seaborn の軸レベルのプロット関数に最も近い機能が提供されます。結果の画像がPlot
で作成された他の画像とどのように異なって見えるかに注意してください。これは、プロットのテーマが、Plot
のデフォルトではなく、axes が作成されたときのグローバル rcParams を使用するためです。p = so.Plot(diamonds, "carat", "price").add(so.Dots()) f, ax = plt.subplots() p.on(ax).show()
代わりに、
matplotlib.pyplot.figure()
を呼び出すと、axes の作成がPlot
に委ねられ、デフォルトのテーマ(およびPlot.theme()
で指定されたカスタマイズ)が適用されます。f = plt.figure() p.on(f).show()
matplotlib.figure.Figure
オブジェクトを作成すると、pyplot
が完全にバイパスされます。これは、GUI アプリケーションにPlot
の figure を埋め込むのに役立つ場合があります。f = mpl.figure.Figure() p.on(f).plot()
Plot.on
を使用すると、基になる matplotlib オブジェクトにもアクセスできるようになり、詳細なカスタマイズに役立つ場合があります。ただし、Plot
が指定、コンパイル、カスタマイズ、表示される操作の順序に注意する必要があります。f = mpl.figure.Figure() res = p.on(f).plot() ax = f.axes[0] rect = mpl.patches.Rectangle( xy=(0, 1), width=.4, height=.1, color="C1", alpha=.2, transform=ax.transAxes, clip_on=False, ) ax.add_artist(rect) ax.text( x=rect.get_width() / 2, y=1 + rect.get_height() / 2, s="Diamonds: very sparkly!", size=12, ha="center", va="center", transform=ax.transAxes, ) res
Matplotlib 3.4 では、サブプロットの複数の配置を合成しやすくする
matplotlib.figure.Figure.subfigures()
の概念が導入されました。これらはPlot.on()
にも渡すことができます。f = mpl.figure.Figure(figsize=(7, 4), dpi=100, layout="constrained") sf1, sf2 = f.subfigures(1, 2) p.on(sf1).plot() ( so.Plot(diamonds, x="price") .add(so.Bars(), so.Hist()) .facet(row="cut") .scale(x="log") .share(y=False) .on(sf2) )