plotnine 0.16.0a2__tar.gz → 0.16.0a3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plotnine-0.16.0a2/plotnine.egg-info → plotnine-0.16.0a3}/PKG-INFO +2 -2
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/_quartodoc.yml +4 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/changelog.qmd +31 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_composition_layout_items.py +43 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_composition_side_space.py +33 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_plot_layout_items.py +43 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_plot_side_space.py +20 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_utils/context.py +12 -8
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/_compose.py +21 -1
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/_plot_annotation.py +6 -1
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/ggplot.py +24 -1
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/guides/guide_legend.py +17 -3
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/iapi.py +3 -2
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/labels.py +7 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/targets.py +4 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme.py +4 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_gray.py +10 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_matplotlib.py +9 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_seaborn.py +10 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_void.py +8 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/themeable.py +91 -2
- {plotnine-0.16.0a2 → plotnine-0.16.0a3/plotnine.egg-info}/PKG-INFO +2 -2
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine.egg-info/SOURCES.txt +5 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine.egg-info/requires.txt +1 -1
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/pyproject.toml +1 -1
- plotnine-0.16.0a3/tests/baseline_images/test_guide_internals/guide_legend_missing_value_for_shapes.png +0 -0
- plotnine-0.16.0a3/tests/baseline_images/test_layout/plot_footer.png +0 -0
- plotnine-0.16.0a3/tests/baseline_images/test_layout/plot_footer_background.png +0 -0
- plotnine-0.16.0a3/tests/baseline_images/test_plot_composition/footer.png +0 -0
- plotnine-0.16.0a3/tests/baseline_images/test_plot_composition/footers.png +0 -0
- plotnine-0.16.0a3/tests/baseline_images/test_scale_internals/missing_data_discrete_position_scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_guide_internals.py +6 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_layout.py +16 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_plot_composition.py +38 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_scale_internals.py +6 -3
- plotnine-0.16.0a2/tests/baseline_images/test_scale_internals/missing_data_discrete_position_scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.gitattributes +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.github/DISCUSSION_TEMPLATE/2024-plotnine-contest.yml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.github/DISCUSSION_TEMPLATE/2025-plotnine-contest.yml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.github/utils/_repo.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.github/utils/please.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.github/workflows/documentation.yml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.github/workflows/release.yml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.github/workflows/testing.yml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.github/workflows/weekly.yml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.gitignore +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.pre-commit-config.yaml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/.readthedocs.yaml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/CITATION.bib +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/LICENSE +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/Makefile +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/README.md +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/code-of-conduct.md +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/codecov.yml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/.gitignore +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/Makefile +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/_config.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/_quarto.yml +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/_renderer.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/favicon-16x16.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/favicon-32x32.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/logo-512.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/logo.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/readme-image-1.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/readme-image-2.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/readme-image-3.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/readme-image-4.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/readme-image-5.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/readme-image-5alt.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/images/readme_images.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/doc/plotnine.scss +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/licences/SEABORN_LICENSE +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/gridspec.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_engine.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_grid.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_layout_tree.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_side_space.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/offsetbox.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/patches.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/text.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/ticker.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/transforms.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/utils.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_utils/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_utils/dataclasses.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_utils/dev.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_utils/ipython.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_utils/quarto.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_utils/registry.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_utils/yippie.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/animation.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/_beside.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/_plot_layout.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/_plot_spacer.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/_stack.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/_types.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/composition/_wrap.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/coords/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/coords/coord.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/coords/coord_cartesian.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/coords/coord_fixed.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/coords/coord_flip.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/coords/coord_trans.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/anscombe-quartet.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/diamonds.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/economics.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/economics_long.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/faithful.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/faithfuld.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/huron.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/luv_colours.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/meat.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/midwest.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/mpg.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/msleep.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/mtcars.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/pageviews.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/penguins.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/presidential.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/seals.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/data/txhousing.csv +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/doctools.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/exceptions.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/facets/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/facets/facet.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/facets/facet_grid.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/facets/facet_null.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/facets/facet_wrap.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/facets/labelling.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/facets/layout.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/facets/strips.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/annotate.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/annotation_logticks.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/annotation_stripes.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_abline.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_area.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_bar.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_bin_2d.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_blank.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_boxplot.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_col.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_count.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_crossbar.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_density.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_density_2d.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_dotplot.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_errorbar.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_errorbarh.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_freqpoly.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_histogram.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_hline.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_jitter.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_label.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_line.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_linerange.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_map.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_path.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_point.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_pointdensity.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_pointrange.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_polygon.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_qq.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_qq_line.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_quantile.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_raster.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_rect.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_ribbon.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_rug.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_segment.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_sina.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_smooth.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_spoke.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_step.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_text.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_tile.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_violin.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/geoms/geom_vline.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/guides/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/guides/guide.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/guides/guide_axis.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/guides/guide_colorbar.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/guides/guides.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/helpers.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/layer.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/mapping/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/mapping/_atomic.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/mapping/_env.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/mapping/_eval_environment.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/mapping/aes.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/mapping/evaluation.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/options.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position_dodge.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position_dodge2.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position_fill.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position_identity.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position_jitter.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position_jitterdodge.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position_nudge.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/positions/position_stack.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/py.typed +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/qplot.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/_expand.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/_runtime_typing.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/limits.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/range.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_alpha.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_color.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_continuous.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_datetime.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_discrete.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_identity.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_linetype.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_manual.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_shape.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_size.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_stroke.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scale_xy.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/scales/scales.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/binning.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/density.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/distributions.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/smoothers.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_bin.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_bin_2d.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_bindot.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_boxplot.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_count.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_density.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_density_2d.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_ecdf.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_ellipse.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_function.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_hull.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_identity.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_pointdensity.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_qq.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_qq_line.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_quantile.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_sina.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_smooth.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_sum.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_summary.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_summary_bin.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_unique.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/stats/stat_ydensity.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/elements/__init__.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/elements/element_base.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/elements/element_blank.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/elements/element_line.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/elements/element_rect.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/elements/element_text.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/elements/margin.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/seaborn_rcmod.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_538.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_bw.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_classic.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_dark.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_light.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_linedraw.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_minimal.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_tufte.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/themes/theme_xkcd.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/typing.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/watermark.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine.egg-info/dependency_links.txt +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine.egg-info/top_level.txt +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/requirements/doc.txt +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/setup.cfg +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_aes/geom_crossbar.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_aes/irregular_shapes.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_aes/reorder.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_aes/reorder_index.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_aes/stat_bin_2d.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_aes/stat_ecdf.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_aes/test_stat_function.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotate/annotate_faceting.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotate/multiple_annotation_geoms.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_logticks/annotation_logticks.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_5.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_8.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete_bottom.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_faceting.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_stripes/annotation_stripes.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_continuous_scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_faceting.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_direction_extend.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range_cycle.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_single_stripe.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_coords/coord_fixed.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_coords/coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_coords/coord_trans.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_coords/coord_trans_backtransform.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_coords/coord_trans_reverse.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_coords/datetime_scale_limits.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/aslabeller_dict_0tag.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/aslabeller_func_hashtagit.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/label_both.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/label_context.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/label_context_wrap2vars.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/label_value.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/labeller_cols_both_grid.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/labeller_cols_both_wrap.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/labeller_towords.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facet_labelling/uneven_num_of_lines.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/array_mapping_and_evaluation.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/dir_v_ncol.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_drop_false.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_expression.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_formula_only_cols.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_formula_only_rows.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_margins.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_one_by_one_var.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_scales_free_x.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_scales_free_y.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_space_free.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_grid_space_ratios.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_wrap_direction_v.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_wrap_expression.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_wrap_label_both.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_wrap_not_as_table.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_wrap_not_as_table_direction_v.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_wrap_one_var.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/facet_wrap_two_vars.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/manual_mapping_with_lists.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/non_mapped_facetting.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_facets/variable_and_annotate.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_abline/aes_inheritance.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_abline/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bar_col_histogram/bar-count.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bar_col_histogram/col.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bar_col_histogram/col_just.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bar_col_histogram/histogram-count.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bar_col_histogram/histogram_weights.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bar_col_histogram/stat-count-float.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bar_col_histogram/stat-count-int.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bin_2d/drop_false.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_bin_2d/drop_true.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_blank/blank.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_boxplot/aesthetics+coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_boxplot/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_boxplot/no_outliers.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_boxplot/params.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_boxplot/position_nudge.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_boxplot/weight.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_count/continuous_x_y.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_count/discrete_x.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_count/discrete_y.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_crossbar/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density/bounds.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density/few_datapoints.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density/gaussian-trimmed.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density/gaussian.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density/gaussian_weighted.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density/triangular.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density_2d/contours.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density_2d/points.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_density_2d/polygon.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/binaxis_y.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/dotdensity.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/group_basic.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/group_stackgroups.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/group_stackgroups_binaxis_y.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/histodot.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/stackdir_center.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/stackdir_centerwhole.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/stackdir_down.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_dotplot/stackratio.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbar_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbarh_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_freqpoly/midpoint.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_hline/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_linerange_pointrange/linerange_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_linerange_pointrange/pointrange_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_map/facet_wrap.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_map/geometries.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_map/multipoint.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_map/multipolygon.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_path_line_step/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_path_line_step/arrow.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_path_line_step/arrow_facets.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_path_line_step/missing_values.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_path_line_step/no_missing_values.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_path_line_step/path_line_step.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_path_line_step/step.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_path_line_step/step_mid.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_point/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_point/color_only_mapping.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_point/custom_shapes.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_point/legend_transparency.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_point/no_fill.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_point/no_mapping.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_pointdensity/contours.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_pointdensity/points.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_polygon/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_polygon/no_fill.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_qq_qq_line/normal.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_qq_qq_line/normal_with_line.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_quantile/lines.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_raster/gap_no_interpolation.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_raster/gap_with_interpolation.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_raster/rectangle.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_raster/square.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_rect_tile/coord-trans-groups.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_rect_tile/coord-trans.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_rect_tile/infinite-rects.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_rect_tile/rect-aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_rect_tile/rect-nofill.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_rect_tile/tile-aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_ribbon_area/area_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_ribbon_area/ribbon_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_ribbon_area/ribbon_coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_ribbon_area/ribbon_facetting.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type_coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_ribbon_area/ribbon_where.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_rug/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_rug/coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_segment/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_segment/arrow.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_segment/arrow_coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_sina/method_counts.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_sina/scale_area+coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_sina/scale_area.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_sina/scale_count.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_sina/style.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/continuous_x.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/continuous_x_fullrange.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/coord_trans_se_false.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/discrete_x.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/discrete_x_fullrange.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/glm_formula.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/gls_formula.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/init_and_fit_kwargs.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/legend_fill_ratio.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/linear_smooth.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/linear_smooth_no_ci.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/lm_formula.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/lm_formula_weights.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/non_linear_smooth.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/non_linear_smooth_no_ci.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/rlm_formula.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_smooth/sorts_by_x.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_spoke/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_spoke/test_unmapped_angle.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_text_label/adjust_label.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_text_label/adjust_text.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_text_label/adjust_text_default_color.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_text_label/format_missing_values.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_text_label/label_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_text_label/text_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/aesthetics+coord_flip.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/no_trim.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/overlap.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/quantiles_width_dodge.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/scales_free.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/style.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_violin/style_alternating.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_geom_vline/aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_ggplot_internals/after_scale_mapping.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_ggplot_internals/to_pandas.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_guide_internals/guide_legend_after_scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layers/inserting_layers.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/axis_text_justification.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/axis_title_x_justification.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/axis_title_y_justification.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/colorbar_frame.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/default.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/default_tag_location.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/different_colorbar_themes.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/facet_grid.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/facet_wrap.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/facet_wrap_scales_free.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/inside_legend_90pct_top_right.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/inside_legend_left.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/inside_legend_top.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/inside_legend_top_right.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/justification_with_blank_title_and_text.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/legend_at_the_bottom.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/legend_at_top.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/legend_on_the_left.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/legends_in_different_positions.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/margin_bottom.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/outside_legend_bottom_left.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/outside_legend_left_top.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/outside_legend_right_bottom.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/outside_legend_top_right.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/panel_bottomleft.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/panel_topleft_margin_in_fig.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt_ar1.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/panel_xycoords.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/plot_margin_aspect_ratio.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/plot_margin_protruding_axis_text.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/plot_title_justification.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/plot_titles_and_caption_positioning.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/plot_topright.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/plot_topright_margin_in_fig.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/plot_topright_margin_in_pt.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/plot_xycoords.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_layout/turn_off_guide.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/add_into_ncol.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/add_into_stack.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/and_operator.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/basic_horizontal_align_resize.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/basic_vertical_align_resize.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/complex_composition.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/facets.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/horizontal_tag_align.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/minus.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/mul_operator.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/nested_horizontal_align_resize.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/nested_vertical_align_resize.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_annotation_addition.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_annotation_position_panel.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_annotation_position_plot.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_association.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_byrow.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_extra_col_width.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_extra_cols.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_extra_row_width.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_extra_rows.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_heights.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_nested_resize.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plot_layout_widths.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/plus_operator.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/test_nested_horizontal_align_1.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/test_nested_horizontal_align_2.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/test_nested_vertical_align_1.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/test_nested_vertical_align_2.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/vertical_tag_align.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_plot_composition/wrap_complicated.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/dodge.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/dodge2.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/dodge2_preserve_single_interval.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/dodge2_varwidth.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/dodge_preserve_single.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/dodge_preserve_single_text.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/dodge_segment.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/fill.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/jitter.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/jitterdodge.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/nudge.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/stack-negative.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/stack-non-linear-scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_position/stack.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/arrays.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/multiple_geoms.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/onlyx.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/onlyy.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/range.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/sample.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/scalars.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/series_labelling.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/string-arrays.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/xlim.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_qplot/ylim.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/bool_mapping.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/breaks_and_labels_outside_of_limits.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/datetime_scale_expansion.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/datetime_scale_limits.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/discrete_xy_scale_drop_limits.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/expand_limits.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/legend_ordering_added_scales.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_1.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_2.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_1.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_2.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/legend_ordering_mixed_scope_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/missing_data_discrete_scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/missing_manual_dict_aesthetic.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/multiple_aesthetics.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/ordinal_scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/test_legend_ordering_with_identity_scale.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/transform_aes_defaults_and_params.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_internals/transform_datetime_aes_param.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_labelling/caption_complex.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_labelling/caption_simple.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_labelling/labelling_with_colour.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_strings.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_tuples.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_scale_symlog/scale_y_symlog.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_ecdf/computed_y_column.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_ecdf/ecdf.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_ecdf/ecdf_no_pad.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_ellipse/ellipse.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_function/args.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_function/limits.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_hull/hull.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary/fun_args.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary/mean_cl_boot.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary/mean_cl_normal.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary/mean_sdl.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary/mean_se.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary/median_hilow.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary/summary_functions.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary_bin/continuous_x.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary_bin/discrete_x.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_stat_summary_bin/setting_binwidth.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/axis_ticks_and_length.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/element_text_with_sequence_values.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/guide_colorbar_text_sequence.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/no_ticks.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/override_axis_text.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/test_guide_colorbar_sequence_ha_va.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_538.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_bw.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_classic.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_dark.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_gray.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_light.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_linedraw.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_matplotlib.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_minimal.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_seaborn.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_tufte.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_void.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_xkcd.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_theme/theme_xkcd_ci.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/baseline_images/test_watermark/watermark.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/conftest.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/images/plotnine-watermark.png +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_aes.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_animation.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_annotate.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_annotation_logticks.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_annotation_stripes.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_binning.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_coords.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_doctools.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_facet_labelling.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_facets.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_abline.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_bar_col_histogram.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_bin_2d.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_blank.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_boxplot.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_count.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_crossbar.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_density.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_density_2d.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_dotplot.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_errorbar_errorbarh.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_freqpoly.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_hline.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_linerange_pointrange.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_map.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_path_line_step.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_point.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_pointdensity.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_polygon.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_qq_qq_line.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_quantile.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_raster.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_rect_tile.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_ribbon_area.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_rug.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_segment.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_sina.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_smooth.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_spoke.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_text_label.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_violin.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_geom_vline.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_ggplot_internals.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_ggsave.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_helpers.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_layers.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_lint_and_format.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_position.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_qplot.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_save_as_pdf_pages.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_scale_labelling.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_scale_linetype.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_scale_symlog.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_stat.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_stat_calculate_methods.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_stat_ecdf.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_stat_ellipse.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_stat_function.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_stat_hull.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_stat_summary.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_stat_summary_bin.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_theme.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_utils.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tests/test_watermark.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tools/release-checklist-tpl.md +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tools/release-checklist.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tools/term.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tools/update_baseline_images.py +0 -0
- {plotnine-0.16.0a2 → plotnine-0.16.0a3}/tools/visualize_tests.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plotnine
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.0a3
|
|
4
4
|
Summary: A Grammar of Graphics for Python
|
|
5
5
|
Author-email: Hassan Kibirige <has2k1@gmail.com>
|
|
6
6
|
License: The MIT License (MIT)
|
|
@@ -49,7 +49,7 @@ Requires-Dist: pandas>=2.2.0
|
|
|
49
49
|
Requires-Dist: mizani~=0.14.0
|
|
50
50
|
Requires-Dist: numpy>=1.23.5
|
|
51
51
|
Requires-Dist: scipy>=1.8.0
|
|
52
|
-
Requires-Dist: statsmodels>=0.14.
|
|
52
|
+
Requires-Dist: statsmodels>=0.14.6
|
|
53
53
|
Provides-Extra: all
|
|
54
54
|
Requires-Dist: plotnine[extra]; extra == "all"
|
|
55
55
|
Requires-Dist: plotnine[doc]; extra == "all"
|
|
@@ -19,12 +19,43 @@ title: Changelog
|
|
|
19
19
|
- Added [](:class:`~plotnine.composition.plot_annotation`), allowing you to add title,
|
|
20
20
|
subtitle or caption to a composition.
|
|
21
21
|
|
|
22
|
+
|
|
23
|
+
- [](:class:`~plotnine.labs`) can now be used to create a `footer`.
|
|
24
|
+
This footer can be styled using the `plot_footer` parameter to [](:class:`~plotnine.theme`).
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
theme(plot_footer=element_text(size=13))
|
|
28
|
+
```
|
|
29
|
+
And you can also give the footer a background with:
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
theme(plot_footer_background=element_text(fill="pink"))
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Or separate it from the `caption` or the rest of the plot with a line.
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
theme(plot_footer_line=element_line(color="black"))
|
|
39
|
+
```
|
|
40
|
+
|
|
22
41
|
### Bug Fixes
|
|
23
42
|
|
|
24
43
|
- Fixed [](:class:`~plotnine.geom_smooth`) / [](:class:`~plotnine.stat_smooth`) when using a linear model via "lm" with weights for the model to do a weighted regression. This bug did not affect the formula API of the linear model. ({{< issue 1005 >}})
|
|
25
44
|
|
|
26
45
|
- Fixed rendering of SVGs in jupyter notebooks.
|
|
27
46
|
|
|
47
|
+
- Fixed [](:class:`~plotnine.geom_legend`) to show an empty key for
|
|
48
|
+
[](:class:`~plotnine.geom_point`) when the shape is mapped to variable with missing
|
|
49
|
+
values.
|
|
50
|
+
|
|
51
|
+
## v0.15.3
|
|
52
|
+
(2025-01-28)
|
|
53
|
+
|
|
54
|
+
### Enhancements
|
|
55
|
+
|
|
56
|
+
- Removed warnings about copy-on-write for pandas >= 3.0.0
|
|
57
|
+
|
|
58
|
+
|
|
28
59
|
## v0.15.2
|
|
29
60
|
(2025-12-12)
|
|
30
61
|
|
{plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_composition_layout_items.py
RENAMED
|
@@ -14,6 +14,9 @@ from plotnine._mpl.utils import (
|
|
|
14
14
|
if TYPE_CHECKING:
|
|
15
15
|
from typing import Any
|
|
16
16
|
|
|
17
|
+
from matplotlib.lines import Line2D
|
|
18
|
+
from matplotlib.patches import Rectangle
|
|
19
|
+
|
|
17
20
|
from plotnine.composition._compose import Compose
|
|
18
21
|
|
|
19
22
|
from ._composition_side_space import CompositionSideSpaces
|
|
@@ -44,6 +47,11 @@ class CompositionLayoutItems:
|
|
|
44
47
|
self.plot_title: Text | None = get("plot_title")
|
|
45
48
|
self.plot_subtitle: Text | None = get("plot_subtitle")
|
|
46
49
|
self.plot_caption: Text | None = get("plot_caption")
|
|
50
|
+
self.plot_footer: Text | None = get("plot_footer")
|
|
51
|
+
self.plot_footer_background: Rectangle | None = get(
|
|
52
|
+
"plot_footer_background"
|
|
53
|
+
)
|
|
54
|
+
self.plot_footer_line: Line2D | None = get("plot_footer_line")
|
|
47
55
|
|
|
48
56
|
def _is_blank(self, name: str) -> bool:
|
|
49
57
|
return self.cmp.theme.T.is_blank(name)
|
|
@@ -55,6 +63,7 @@ class CompositionLayoutItems:
|
|
|
55
63
|
theme = self.cmp.theme
|
|
56
64
|
plot_title_position = theme.getp("plot_title_position", "panel")
|
|
57
65
|
plot_caption_position = theme.getp("plot_caption_position", "panel")
|
|
66
|
+
plot_footer_position = theme.getp("plot_footer_position", "plot")
|
|
58
67
|
justify = CompositionTextJustifier(spaces)
|
|
59
68
|
|
|
60
69
|
if self.plot_title:
|
|
@@ -78,6 +87,40 @@ class CompositionLayoutItems:
|
|
|
78
87
|
self.plot_caption, ha, plot_caption_position
|
|
79
88
|
)
|
|
80
89
|
|
|
90
|
+
if self.plot_footer:
|
|
91
|
+
ha = theme.getp(("plot_footer", "ha"), "left")
|
|
92
|
+
self.plot_footer.set_y(spaces.b.y1("plot_footer"))
|
|
93
|
+
justify.horizontally_about(
|
|
94
|
+
self.plot_footer, ha, plot_footer_position
|
|
95
|
+
)
|
|
96
|
+
self._resize_plot_footer_background(spaces)
|
|
97
|
+
self._resize_plot_footer_line(spaces)
|
|
98
|
+
|
|
99
|
+
def _resize_plot_footer_background(self, spaces: CompositionSideSpaces):
|
|
100
|
+
"""
|
|
101
|
+
Resize the plot footer to the size of the footer
|
|
102
|
+
"""
|
|
103
|
+
if not self.plot_footer_background:
|
|
104
|
+
return
|
|
105
|
+
|
|
106
|
+
self.plot_footer_background.set_x(spaces.l.offset)
|
|
107
|
+
self.plot_footer_background.set_y(spaces.b.offset)
|
|
108
|
+
self.plot_footer_background.set_height(spaces.b.footer_height)
|
|
109
|
+
self.plot_footer_background.set_width(spaces.plot_width)
|
|
110
|
+
|
|
111
|
+
def _resize_plot_footer_line(self, spaces: CompositionSideSpaces):
|
|
112
|
+
"""
|
|
113
|
+
Resize the footer line to be a border above the footer
|
|
114
|
+
"""
|
|
115
|
+
if not self.plot_footer_line:
|
|
116
|
+
return
|
|
117
|
+
|
|
118
|
+
x1 = spaces.l.offset
|
|
119
|
+
x2 = x1 + spaces.plot_width
|
|
120
|
+
y1 = y2 = spaces.b.offset + spaces.b.footer_height
|
|
121
|
+
self.plot_footer_line.set_xdata([x1, x2])
|
|
122
|
+
self.plot_footer_line.set_ydata([y1, y2])
|
|
123
|
+
|
|
81
124
|
|
|
82
125
|
class CompositionTextJustifier(TextJustifier):
|
|
83
126
|
"""
|
{plotnine-0.16.0a2 → plotnine-0.16.0a3}/plotnine/_mpl/layout_manager/_composition_side_space.py
RENAMED
|
@@ -218,6 +218,9 @@ class composition_bottom_space(_composition_side_space):
|
|
|
218
218
|
Ordered from the edge of the figure and going inwards
|
|
219
219
|
"""
|
|
220
220
|
|
|
221
|
+
plot_footer_margin_bottom: float = 0
|
|
222
|
+
plot_footer: float = 0
|
|
223
|
+
plot_footer_margin_top: float = 0
|
|
221
224
|
plot_margin: float = 0
|
|
222
225
|
plot_caption_margin_bottom: float = 0
|
|
223
226
|
plot_caption: float = 0
|
|
@@ -231,6 +234,11 @@ class composition_bottom_space(_composition_side_space):
|
|
|
231
234
|
F = W / H
|
|
232
235
|
|
|
233
236
|
self.plot_margin = theme.getp("plot_margin_bottom") * F
|
|
237
|
+
if items.plot_footer:
|
|
238
|
+
m = theme.get_margin("plot_footer").fig
|
|
239
|
+
self.plot_footer_margin_bottom = m.b * F
|
|
240
|
+
self.plot_footer = geometry.height(items.plot_footer)
|
|
241
|
+
self.plot_footer_margin_top = m.t * F
|
|
234
242
|
|
|
235
243
|
if items.plot_caption:
|
|
236
244
|
m = theme.get_margin("plot_caption").fig
|
|
@@ -269,6 +277,17 @@ class composition_bottom_space(_composition_side_space):
|
|
|
269
277
|
"""
|
|
270
278
|
return self.to_figure_space(self.sum_incl(item))
|
|
271
279
|
|
|
280
|
+
@property
|
|
281
|
+
def footer_height(self):
|
|
282
|
+
"""
|
|
283
|
+
The height of the footer including the margins
|
|
284
|
+
"""
|
|
285
|
+
return (
|
|
286
|
+
self.plot_footer_margin_bottom
|
|
287
|
+
+ self.plot_footer
|
|
288
|
+
+ self.plot_footer_margin_top
|
|
289
|
+
)
|
|
290
|
+
|
|
272
291
|
@property
|
|
273
292
|
def items_bottom_relative(self):
|
|
274
293
|
"""
|
|
@@ -361,6 +380,20 @@ class CompositionSideSpaces:
|
|
|
361
380
|
0,
|
|
362
381
|
)
|
|
363
382
|
|
|
383
|
+
@property
|
|
384
|
+
def plot_width(self) -> float:
|
|
385
|
+
"""
|
|
386
|
+
Width [figure dimensions] of the whole plot composition
|
|
387
|
+
"""
|
|
388
|
+
return float(self.gridspec.width)
|
|
389
|
+
|
|
390
|
+
@property
|
|
391
|
+
def plot_height(self) -> float:
|
|
392
|
+
"""
|
|
393
|
+
Height [figure dimensions] of the whole plot composition
|
|
394
|
+
"""
|
|
395
|
+
return float(self.gridspec.height)
|
|
396
|
+
|
|
364
397
|
@property
|
|
365
398
|
def horizontal_space(self) -> float:
|
|
366
399
|
"""
|
|
@@ -26,6 +26,8 @@ if TYPE_CHECKING:
|
|
|
26
26
|
|
|
27
27
|
from matplotlib.axes import Axes
|
|
28
28
|
from matplotlib.axis import Tick
|
|
29
|
+
from matplotlib.lines import Line2D
|
|
30
|
+
from matplotlib.patches import Rectangle
|
|
29
31
|
from matplotlib.transforms import Transform
|
|
30
32
|
|
|
31
33
|
from plotnine import ggplot
|
|
@@ -86,12 +88,18 @@ class PlotLayoutItems:
|
|
|
86
88
|
# # AnchoredOffsetboxes (groups of legends)
|
|
87
89
|
self.legends: legend_artists | None = get("legends")
|
|
88
90
|
self.plot_caption: Text | None = get("plot_caption")
|
|
91
|
+
self.plot_footer: Text | None = get("plot_footer")
|
|
89
92
|
self.plot_subtitle: Text | None = get("plot_subtitle")
|
|
90
93
|
self.plot_title: Text | None = get("plot_title")
|
|
91
94
|
self.plot_tag: Text | None = get("plot_tag")
|
|
92
95
|
self.strip_text_x: list[StripText] | None = get("strip_text_x")
|
|
93
96
|
self.strip_text_y: list[StripText] | None = get("strip_text_y")
|
|
94
97
|
|
|
98
|
+
self.plot_footer_background: Rectangle | None = get(
|
|
99
|
+
"plot_footer_background"
|
|
100
|
+
)
|
|
101
|
+
self.plot_footer_line: Line2D | None = get("plot_footer_line")
|
|
102
|
+
|
|
95
103
|
def _is_blank(self, name: str) -> bool:
|
|
96
104
|
return self.plot.theme.T.is_blank(name)
|
|
97
105
|
|
|
@@ -345,6 +353,7 @@ class PlotLayoutItems:
|
|
|
345
353
|
theme = self.plot.theme
|
|
346
354
|
plot_title_position = theme.getp("plot_title_position", "panel")
|
|
347
355
|
plot_caption_position = theme.getp("plot_caption_position", "panel")
|
|
356
|
+
plot_footer_position = theme.getp("plot_footer_position", "plot")
|
|
348
357
|
justify = PlotTextJustifier(spaces)
|
|
349
358
|
|
|
350
359
|
if self.plot_tag:
|
|
@@ -371,6 +380,15 @@ class PlotLayoutItems:
|
|
|
371
380
|
self.plot_caption, ha, plot_caption_position
|
|
372
381
|
)
|
|
373
382
|
|
|
383
|
+
if self.plot_footer:
|
|
384
|
+
ha = theme.getp(("plot_footer", "ha"), "left")
|
|
385
|
+
self.plot_footer.set_y(spaces.b.y1("plot_footer"))
|
|
386
|
+
justify.horizontally_about(
|
|
387
|
+
self.plot_footer, ha, plot_footer_position
|
|
388
|
+
)
|
|
389
|
+
self._resize_plot_footer_background(spaces)
|
|
390
|
+
self._resize_plot_footer_line(spaces)
|
|
391
|
+
|
|
374
392
|
if self.axis_title_x:
|
|
375
393
|
ha = theme.getp(("axis_title_x", "ha"), "center")
|
|
376
394
|
self.axis_title_x.set_y(spaces.b.y1("axis_title_x"))
|
|
@@ -505,6 +523,31 @@ class PlotLayoutItems:
|
|
|
505
523
|
for text, scale in zip(self.strip_text_y, relative_widths):
|
|
506
524
|
text.patch.expand = scale
|
|
507
525
|
|
|
526
|
+
def _resize_plot_footer_background(self, spaces: PlotSideSpaces):
|
|
527
|
+
"""
|
|
528
|
+
Resize the plot footer to the size of the footer
|
|
529
|
+
"""
|
|
530
|
+
if not self.plot_footer_background:
|
|
531
|
+
return
|
|
532
|
+
|
|
533
|
+
self.plot_footer_background.set_x(spaces.l.offset)
|
|
534
|
+
self.plot_footer_background.set_y(spaces.b.offset)
|
|
535
|
+
self.plot_footer_background.set_height(spaces.b.footer_height)
|
|
536
|
+
self.plot_footer_background.set_width(spaces.plot_width)
|
|
537
|
+
|
|
538
|
+
def _resize_plot_footer_line(self, spaces: PlotSideSpaces):
|
|
539
|
+
"""
|
|
540
|
+
Resize the footer line to be a border above the footer
|
|
541
|
+
"""
|
|
542
|
+
if not self.plot_footer_line:
|
|
543
|
+
return
|
|
544
|
+
|
|
545
|
+
x1 = spaces.l.offset
|
|
546
|
+
x2 = x1 + spaces.plot_width
|
|
547
|
+
y1 = y2 = spaces.b.offset + spaces.b.footer_height
|
|
548
|
+
self.plot_footer_line.set_xdata([x1, x2])
|
|
549
|
+
self.plot_footer_line.set_ydata([y1, y2])
|
|
550
|
+
|
|
508
551
|
|
|
509
552
|
def _text_is_visible(text: Text) -> bool:
|
|
510
553
|
"""
|
|
@@ -553,6 +553,9 @@ class bottom_space(_plot_side_space):
|
|
|
553
553
|
Ordered from the edge of the figure and going inwards
|
|
554
554
|
"""
|
|
555
555
|
|
|
556
|
+
plot_footer_margin_bottom: float = 0
|
|
557
|
+
plot_footer: float = 0
|
|
558
|
+
plot_footer_margin_top: float = 0
|
|
556
559
|
plot_margin: float = 0
|
|
557
560
|
tag_alignment: float = 0
|
|
558
561
|
plot_tag_margin_bottom: float = 0
|
|
@@ -602,6 +605,12 @@ class bottom_space(_plot_side_space):
|
|
|
602
605
|
self.plot_caption = geometry.height(items.plot_caption)
|
|
603
606
|
self.plot_caption_margin_top = m.t * F
|
|
604
607
|
|
|
608
|
+
if items.plot_footer:
|
|
609
|
+
m = theme.get_margin("plot_footer").fig
|
|
610
|
+
self.plot_footer_margin_bottom = m.b * F
|
|
611
|
+
self.plot_footer = geometry.height(items.plot_footer)
|
|
612
|
+
self.plot_footer_margin_top = m.t * F
|
|
613
|
+
|
|
605
614
|
if items.legends and items.legends.bottom:
|
|
606
615
|
self.legend = self.legend_height
|
|
607
616
|
self.legend_box_spacing = theme.getp("legend_box_spacing") * F
|
|
@@ -680,6 +689,17 @@ class bottom_space(_plot_side_space):
|
|
|
680
689
|
"""
|
|
681
690
|
return self.y1("legend")
|
|
682
691
|
|
|
692
|
+
@property
|
|
693
|
+
def footer_height(self):
|
|
694
|
+
"""
|
|
695
|
+
The height of the footer including the margins
|
|
696
|
+
"""
|
|
697
|
+
return (
|
|
698
|
+
self.plot_footer_margin_bottom
|
|
699
|
+
+ self.plot_footer
|
|
700
|
+
+ self.plot_footer_margin_top
|
|
701
|
+
)
|
|
702
|
+
|
|
683
703
|
@property
|
|
684
704
|
def tag_height(self):
|
|
685
705
|
"""
|
|
@@ -4,6 +4,7 @@ from dataclasses import dataclass
|
|
|
4
4
|
from typing import TYPE_CHECKING
|
|
5
5
|
|
|
6
6
|
import pandas as pd
|
|
7
|
+
from packaging.version import Version
|
|
7
8
|
|
|
8
9
|
if TYPE_CHECKING:
|
|
9
10
|
from typing_extensions import Self
|
|
@@ -11,6 +12,8 @@ if TYPE_CHECKING:
|
|
|
11
12
|
from plotnine import ggplot
|
|
12
13
|
from plotnine.composition import Compose
|
|
13
14
|
|
|
15
|
+
PANDAS_LT_3 = Version(pd.__version__) < Version("3.0")
|
|
16
|
+
|
|
14
17
|
|
|
15
18
|
def reopen(fig):
|
|
16
19
|
"""
|
|
@@ -55,12 +58,11 @@ class plot_context:
|
|
|
55
58
|
|
|
56
59
|
# Contexts
|
|
57
60
|
self.rc_context = mpl.rc_context(plot.theme.rcParams)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
)
|
|
61
|
+
if PANDAS_LT_3:
|
|
62
|
+
self.pd_option_context = pd.option_context(
|
|
63
|
+
"mode.copy_on_write",
|
|
64
|
+
True,
|
|
65
|
+
)
|
|
64
66
|
|
|
65
67
|
def __enter__(self) -> Self:
|
|
66
68
|
"""
|
|
@@ -68,7 +70,8 @@ class plot_context:
|
|
|
68
70
|
"""
|
|
69
71
|
|
|
70
72
|
self.rc_context.__enter__()
|
|
71
|
-
|
|
73
|
+
if PANDAS_LT_3:
|
|
74
|
+
self.pd_option_context.__enter__()
|
|
72
75
|
|
|
73
76
|
return self
|
|
74
77
|
|
|
@@ -89,7 +92,8 @@ class plot_context:
|
|
|
89
92
|
plt.close(self.plot.figure)
|
|
90
93
|
|
|
91
94
|
self.rc_context.__exit__(exc_type, exc_value, exc_traceback)
|
|
92
|
-
|
|
95
|
+
if PANDAS_LT_3:
|
|
96
|
+
self.pd_option_context.__exit__(exc_type, exc_value, exc_traceback)
|
|
93
97
|
|
|
94
98
|
|
|
95
99
|
@dataclass
|
|
@@ -123,6 +123,8 @@ class Compose:
|
|
|
123
123
|
| ------------- |
|
|
124
124
|
| |
|
|
125
125
|
| caption |
|
|
126
|
+
|-------------------|
|
|
127
|
+
| footer |
|
|
126
128
|
-------------------
|
|
127
129
|
"""
|
|
128
130
|
_sidespaces: CompositionSideSpaces
|
|
@@ -573,13 +575,28 @@ class Compose:
|
|
|
573
575
|
"""
|
|
574
576
|
Draw the background rectangle of the composition
|
|
575
577
|
"""
|
|
578
|
+
from matplotlib.lines import Line2D
|
|
576
579
|
from matplotlib.patches import Rectangle
|
|
577
580
|
|
|
578
|
-
|
|
581
|
+
zorder = -1000
|
|
582
|
+
rect = Rectangle((0, 0), 0, 0, facecolor="none", zorder=zorder)
|
|
579
583
|
self.figure.add_artist(rect)
|
|
580
584
|
self._gridspec.patch = rect
|
|
581
585
|
self.theme.targets.plot_background = rect
|
|
582
586
|
|
|
587
|
+
if self.annotation.footer:
|
|
588
|
+
rect = Rectangle(
|
|
589
|
+
(0, 0), 0, 0, facecolor="none", linewidth=0, zorder=zorder + 1
|
|
590
|
+
)
|
|
591
|
+
self.figure.add_artist(rect)
|
|
592
|
+
self.theme.targets.plot_footer_background = rect
|
|
593
|
+
|
|
594
|
+
line = Line2D(
|
|
595
|
+
[0, 0], [0, 0], color="none", linewidth=0, zorder=zorder + 2
|
|
596
|
+
)
|
|
597
|
+
self.figure.add_artist(line)
|
|
598
|
+
self.theme.targets.plot_footer_line = line
|
|
599
|
+
|
|
583
600
|
def _draw_annotation(self):
|
|
584
601
|
"""
|
|
585
602
|
Draw the items in the annotation
|
|
@@ -602,6 +619,9 @@ class Compose:
|
|
|
602
619
|
if caption := self.annotation.caption:
|
|
603
620
|
targets.plot_caption = figure.text(0, 0, caption)
|
|
604
621
|
|
|
622
|
+
if footer := self.annotation.footer:
|
|
623
|
+
targets.plot_footer = figure.text(0, 0, footer)
|
|
624
|
+
|
|
605
625
|
def save(
|
|
606
626
|
self,
|
|
607
627
|
filename: str | Path | BytesIO,
|
|
@@ -36,9 +36,14 @@ class plot_annotation(ComposeAddable):
|
|
|
36
36
|
The caption of the composition
|
|
37
37
|
"""
|
|
38
38
|
|
|
39
|
+
footer: str | None = None
|
|
40
|
+
"""
|
|
41
|
+
The footer of the composition
|
|
42
|
+
"""
|
|
43
|
+
|
|
39
44
|
theme: theme = field(default_factory=theme) # pyright: ignore[reportUnboundVariable]
|
|
40
45
|
"""
|
|
41
|
-
Theme
|
|
46
|
+
Theme for the plot title, subtitle, caption, footer, margin and background
|
|
42
47
|
|
|
43
48
|
It also controls the [](`~plotnine.themes.themeables.figure_size`) of the
|
|
44
49
|
composition. The default theme is the same as the default one used for the
|
|
@@ -127,6 +127,8 @@ class ggplot:
|
|
|
127
127
|
| axis_text |
|
|
128
128
|
| axis_title |
|
|
129
129
|
| caption |
|
|
130
|
+
|-------------------------|
|
|
131
|
+
| footer |
|
|
130
132
|
-------------------------
|
|
131
133
|
"""
|
|
132
134
|
|
|
@@ -553,6 +555,7 @@ class ggplot:
|
|
|
553
555
|
subtitle = self.labels.get("subtitle", "")
|
|
554
556
|
caption = self.labels.get("caption", "")
|
|
555
557
|
tag = self.labels.get("tag", "")
|
|
558
|
+
footer = self.labels.get("footer", "")
|
|
556
559
|
|
|
557
560
|
# Get the axis labels (default or specified by user)
|
|
558
561
|
# and let the coordinate modify them e.g. flip
|
|
@@ -570,6 +573,9 @@ class ggplot:
|
|
|
570
573
|
if caption:
|
|
571
574
|
targets.plot_caption = figure.text(0, 0, caption)
|
|
572
575
|
|
|
576
|
+
if footer:
|
|
577
|
+
targets.plot_footer = figure.text(0, 0, footer)
|
|
578
|
+
|
|
573
579
|
if tag:
|
|
574
580
|
targets.plot_tag = figure.text(0, 0, tag)
|
|
575
581
|
|
|
@@ -587,13 +593,30 @@ class ggplot:
|
|
|
587
593
|
wm.draw(self.figure)
|
|
588
594
|
|
|
589
595
|
def _draw_plot_background(self):
|
|
596
|
+
from matplotlib.lines import Line2D
|
|
590
597
|
from matplotlib.patches import Rectangle
|
|
591
598
|
|
|
592
|
-
|
|
599
|
+
zorder = -1000
|
|
600
|
+
rect = Rectangle((0, 0), 0, 0, facecolor="none", zorder=zorder)
|
|
593
601
|
self.figure.add_artist(rect)
|
|
594
602
|
self._gridspec.patch = rect
|
|
595
603
|
self.theme.targets.plot_background = rect
|
|
596
604
|
|
|
605
|
+
# Footer background and line only if there is a footer, and put
|
|
606
|
+
# it on top of the plot background
|
|
607
|
+
if self.labels.get("footer", ""):
|
|
608
|
+
rect = Rectangle(
|
|
609
|
+
(0, 0), 0, 0, facecolor="none", linewidth=0, zorder=zorder + 1
|
|
610
|
+
)
|
|
611
|
+
self.figure.add_artist(rect)
|
|
612
|
+
self.theme.targets.plot_footer_background = rect
|
|
613
|
+
|
|
614
|
+
line = Line2D(
|
|
615
|
+
[0, 0], [0, 0], color="none", linewidth=0, zorder=zorder + 2
|
|
616
|
+
)
|
|
617
|
+
self.figure.add_artist(line)
|
|
618
|
+
self.theme.targets.plot_footer_line = line
|
|
619
|
+
|
|
597
620
|
def _save_filename(self, ext: str) -> Path:
|
|
598
621
|
"""
|
|
599
622
|
Make a filename for use by the save method
|
|
@@ -272,9 +272,12 @@ class guide_legend(guide):
|
|
|
272
272
|
# Drawings
|
|
273
273
|
drawings: list[ColoredDrawingArea] = []
|
|
274
274
|
for i in range(nbreak):
|
|
275
|
-
|
|
276
|
-
elements.key_widths[i], elements.key_heights[i]
|
|
277
|
-
|
|
275
|
+
try:
|
|
276
|
+
w, h = elements.key_widths[i], elements.key_heights[i]
|
|
277
|
+
except IndexError:
|
|
278
|
+
w, h = elements.empty_key_size
|
|
279
|
+
|
|
280
|
+
da = ColoredDrawingArea(w, h, 0, 0)
|
|
278
281
|
|
|
279
282
|
# overlay geoms
|
|
280
283
|
for params in self._layer_parameters:
|
|
@@ -482,3 +485,14 @@ class GuideElementsLegend(GuideElements):
|
|
|
482
485
|
if self.is_horizontal:
|
|
483
486
|
return [max(hs)] * len(hs)
|
|
484
487
|
return hs
|
|
488
|
+
|
|
489
|
+
@cached_property
|
|
490
|
+
def empty_key_size(self) -> tuple[float, float]:
|
|
491
|
+
"""
|
|
492
|
+
Size of an empty key
|
|
493
|
+
"""
|
|
494
|
+
return (
|
|
495
|
+
(max(self.key_widths), min(self.key_heights))
|
|
496
|
+
if self.is_vertical
|
|
497
|
+
else (min(self.key_widths), max(self.key_heights))
|
|
498
|
+
)
|
|
@@ -66,7 +66,7 @@ class range_view:
|
|
|
66
66
|
@dataclass
|
|
67
67
|
class labels_view:
|
|
68
68
|
"""
|
|
69
|
-
Scale labels (incl. caption
|
|
69
|
+
Scale labels (incl. caption, title, footer) for the plot
|
|
70
70
|
"""
|
|
71
71
|
|
|
72
72
|
x: Optional[str] = None
|
|
@@ -80,8 +80,9 @@ class labels_view:
|
|
|
80
80
|
size: Optional[str] = None
|
|
81
81
|
stroke: Optional[str] = None
|
|
82
82
|
title: Optional[str] = None
|
|
83
|
-
caption: Optional[str] = None
|
|
84
83
|
subtitle: Optional[str] = None
|
|
84
|
+
caption: Optional[str] = None
|
|
85
|
+
footer: Optional[str] = None
|
|
85
86
|
tag: Optional[str] = None
|
|
86
87
|
|
|
87
88
|
def update(self, other: labels_view):
|
|
@@ -7,6 +7,7 @@ if TYPE_CHECKING:
|
|
|
7
7
|
from typing import Optional
|
|
8
8
|
|
|
9
9
|
from matplotlib.collections import LineCollection
|
|
10
|
+
from matplotlib.lines import Line2D
|
|
10
11
|
from matplotlib.patches import Rectangle
|
|
11
12
|
from matplotlib.text import Text
|
|
12
13
|
|
|
@@ -37,9 +38,12 @@ class ThemeTargets:
|
|
|
37
38
|
panel_border: list[Rectangle] = field(default_factory=list)
|
|
38
39
|
plot_caption: Optional[Text] = None
|
|
39
40
|
plot_subtitle: Optional[Text] = None
|
|
41
|
+
plot_footer: Optional[Text] = None
|
|
40
42
|
plot_tag: Optional[Text] = None
|
|
41
43
|
plot_title: Optional[Text] = None
|
|
42
44
|
plot_background: Optional[Rectangle] = None
|
|
45
|
+
plot_footer_background: Optional[Rectangle] = None
|
|
46
|
+
plot_footer_line: Optional[Line2D] = None
|
|
43
47
|
strip_background_x: list[StripTextPatch] = field(default_factory=list)
|
|
44
48
|
strip_background_y: list[StripTextPatch] = field(default_factory=list)
|
|
45
49
|
strip_text_x: list[StripText] = field(default_factory=list)
|
|
@@ -124,9 +124,11 @@ class theme:
|
|
|
124
124
|
plot_title=None,
|
|
125
125
|
plot_subtitle=None,
|
|
126
126
|
plot_caption=None,
|
|
127
|
+
plot_footer=None,
|
|
127
128
|
plot_tag=None,
|
|
128
129
|
plot_title_position=None,
|
|
129
130
|
plot_caption_position=None,
|
|
131
|
+
plot_footer_position=None,
|
|
130
132
|
plot_tag_location=None,
|
|
131
133
|
plot_tag_position=None,
|
|
132
134
|
strip_text_x=None,
|
|
@@ -157,6 +159,7 @@ class theme:
|
|
|
157
159
|
panel_grid_major=None,
|
|
158
160
|
panel_grid_minor=None,
|
|
159
161
|
panel_grid=None,
|
|
162
|
+
plot_footer_line=None,
|
|
160
163
|
line=None,
|
|
161
164
|
legend_key=None,
|
|
162
165
|
legend_frame=None,
|
|
@@ -165,6 +168,7 @@ class theme:
|
|
|
165
168
|
panel_background=None,
|
|
166
169
|
panel_border=None,
|
|
167
170
|
plot_background=None,
|
|
171
|
+
plot_footer_background=None,
|
|
168
172
|
strip_background_x=None,
|
|
169
173
|
strip_background_y=None,
|
|
170
174
|
strip_background=None,
|
|
@@ -109,6 +109,15 @@ class theme_gray(theme):
|
|
|
109
109
|
ma="left",
|
|
110
110
|
margin=margin(t=m, unit="fig"),
|
|
111
111
|
),
|
|
112
|
+
plot_footer=element_text(
|
|
113
|
+
size=base_size * 0.8,
|
|
114
|
+
ha="left",
|
|
115
|
+
va="bottom",
|
|
116
|
+
ma="left",
|
|
117
|
+
margin=margin(t=1 / 3, b=1 / 3, unit="lines"),
|
|
118
|
+
),
|
|
119
|
+
plot_footer_background=element_blank(),
|
|
120
|
+
plot_footer_line=element_blank(),
|
|
112
121
|
plot_margin=m,
|
|
113
122
|
plot_subtitle=element_text(
|
|
114
123
|
va="top",
|
|
@@ -128,6 +137,7 @@ class theme_gray(theme):
|
|
|
128
137
|
),
|
|
129
138
|
plot_title_position="panel",
|
|
130
139
|
plot_caption_position="panel",
|
|
140
|
+
plot_footer_position="plot",
|
|
131
141
|
plot_tag_location="margin",
|
|
132
142
|
plot_tag_position="topleft",
|
|
133
143
|
strip_align=0,
|
|
@@ -85,6 +85,12 @@ class theme_matplotlib(theme):
|
|
|
85
85
|
ma="left",
|
|
86
86
|
margin=margin(t=m, unit="fig"),
|
|
87
87
|
),
|
|
88
|
+
plot_footer=element_text(
|
|
89
|
+
ha="left",
|
|
90
|
+
va="bottom",
|
|
91
|
+
ma="left",
|
|
92
|
+
margin=margin(t=1 / 3, b=1 / 3, unit="lines"),
|
|
93
|
+
),
|
|
88
94
|
plot_margin=m,
|
|
89
95
|
plot_subtitle=element_text(
|
|
90
96
|
size=base_size * 0.9,
|
|
@@ -92,6 +98,8 @@ class theme_matplotlib(theme):
|
|
|
92
98
|
ma="left",
|
|
93
99
|
margin=margin(b=m, unit="fig"),
|
|
94
100
|
),
|
|
101
|
+
plot_footer_background=element_blank(),
|
|
102
|
+
plot_footer_line=element_blank(),
|
|
95
103
|
plot_title=element_text(
|
|
96
104
|
va="top",
|
|
97
105
|
ma="left",
|
|
@@ -104,6 +112,7 @@ class theme_matplotlib(theme):
|
|
|
104
112
|
),
|
|
105
113
|
plot_title_position="panel",
|
|
106
114
|
plot_caption_position="panel",
|
|
115
|
+
plot_footer_position="plot",
|
|
107
116
|
plot_tag_location="margin",
|
|
108
117
|
plot_tag_position="topleft",
|
|
109
118
|
strip_align=0,
|