You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Side panels and marginal plots: ggside-style side layers and lets-plot's ggmarginal().
Plot files: ggsave(plot, "x.ggrs") writes a self-contained plot file, ggload("x.ggrs") opens it.
Notebook output mode is now chosen with ggrust.display(mode).
Added
Side panels (ggside): geom_xside* / geom_yside* layers for tile, bar, col, histogram, density, point, boxplot, violin, line and text; scale_xsidey_* / scale_ysidex_*; ggside(x_pos=, y_pos=); theme(ggside_panel_scale*, ggside_panel_spacing*). Bands follow coord_flip, axis position= and HTML zoom.
ggmarginal(sides, size, layer), with the same spec as lets_plot.
.ggrs plot files: ggsave(plot, "x.ggrs") stores the spec, data (Arrow IPC) and registered fonts in one zip; ggload("x.ggrs") restores it (polars, pandas, pyarrow or dict data). Loading runs no code and verifies sizes and hashes.
ggrust.display("html" | "svg" | "png") picks what notebooks show: interactive HTML (default), static SVG without JavaScript, or PNG.
Boxplot tooltips show each statistic as a lets-plot style side tooltip.
Docs: a guide page and gallery section for the built-in ggplot2 extensions, with credits to the R packages.
Changed
ggtb() shows the layers menu by default; pass layers=False to remove it.
Breaking
The LetsPlot shim is removed. Delete LetsPlot.setup_html() calls; use ggrust.display(mode) to switch output. display is not in __all__, so from ggrust import * does not shadow IPython's display().
Fixed
Side band axes: discrete labels are no longer blanked and get room to fit; thin continuous bands keep at least one label.