Back to Seaborn

Objects.Plot.On

doc/_docstrings/objects.Plot.on.ipynb

0.13.21.1 KB
Original Source
python
%config InlineBackend.figure_format = "retina"
import seaborn as sns
import seaborn.objects as so
import matplotlib as mpl
import matplotlib.pyplot as plt
from seaborn import load_dataset
diamonds = load_dataset("diamonds")
python
p = so.Plot(diamonds, "carat", "price").add(so.Dots())
f, ax = plt.subplots()
p.on(ax).show()
python
f = plt.figure()
p.on(f).show()
python
f = mpl.figure.Figure()
p.on(f).plot()
python
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
python
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)
)