plotnine 0.15.0.dev2__tar.gz → 0.15.0.dev3__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.15.0.dev2/plotnine.egg-info → plotnine-0.15.0.dev3}/PKG-INFO +1 -1
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/_quartodoc.yml +11 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/changelog.qmd +11 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/layout_manager/_layout_items.py +2 -42
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/layout_manager/_layout_tree.py +168 -115
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/layout_manager/_spaces.py +15 -2
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_bar.py +10 -2
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_col.py +6 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_violin.py +24 -7
- plotnine-0.15.0.dev3/plotnine/mapping/_eval_environment.py +85 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/mapping/aes.py +6 -23
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/mapping/evaluation.py +7 -65
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_sina.py +33 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/themeable.py +1 -1
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3/plotnine.egg-info}/PKG-INFO +1 -1
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine.egg-info/SOURCES.txt +4 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_bar_col_histogram/col_just.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_sina/style.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_violin/overlap.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_layout/axis_text_justification.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_layout/facet_wrap_scales_free.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_seaborn.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_bar_col_histogram.py +11 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_sina.py +10 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_violin.py +8 -0
- plotnine-0.15.0.dev2/tests/baseline_images/test_layout/axis_text_justification.png +0 -0
- plotnine-0.15.0.dev2/tests/baseline_images/test_layout/facet_wrap_scales_free.png +0 -0
- plotnine-0.15.0.dev2/tests/baseline_images/test_theme/theme_seaborn.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.gitattributes +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.github/DISCUSSION_TEMPLATE/2024-plotnine-contest.yml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.github/utils/_repo.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.github/utils/please.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.github/workflows/documentation.yml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.github/workflows/release.yml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.github/workflows/testing.yml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.github/workflows/weekly.yml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.gitignore +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.pre-commit-config.yaml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/.readthedocs.yaml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/CITATION.bib +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/LICENSE +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/Makefile +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/README.md +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/code-of-conduct.md +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/codecov.yml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/.gitignore +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/Makefile +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/_config.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/_quarto.yml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/_renderer.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/favicon-16x16.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/favicon-32x32.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/logo-512.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/logo.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/readme-image-1.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/readme-image-2.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/readme-image-3.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/readme-image-4.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/readme-image-5.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/readme-image-5alt.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/images/readme_images.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/doc/plotnine.scss +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/licences/SEABORN_LICENSE +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/gridspec.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/layout_manager/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/layout_manager/_engine.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/offsetbox.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/patches.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/text.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/ticker.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/transforms.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_mpl/utils.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_utils/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_utils/context.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_utils/dev.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_utils/ipython.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_utils/quarto.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/_utils/registry.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/animation.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/coords/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/coords/coord.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/coords/coord_cartesian.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/coords/coord_fixed.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/coords/coord_flip.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/coords/coord_trans.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/diamonds.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/economics.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/economics_long.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/faithful.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/faithfuld.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/huron.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/luv_colours.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/meat.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/midwest.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/mpg.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/msleep.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/mtcars.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/pageviews.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/penguins.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/presidential.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/seals.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/data/txhousing.csv +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/doctools.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/exceptions.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/facets/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/facets/facet.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/facets/facet_grid.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/facets/facet_null.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/facets/facet_wrap.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/facets/labelling.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/facets/layout.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/facets/strips.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/annotate.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/annotation_logticks.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/annotation_stripes.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_abline.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_area.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_bin_2d.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_blank.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_boxplot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_count.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_crossbar.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_density.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_density_2d.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_dotplot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_errorbar.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_errorbarh.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_freqpoly.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_histogram.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_hline.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_jitter.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_label.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_line.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_linerange.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_map.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_path.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_point.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_pointdensity.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_pointrange.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_polygon.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_qq.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_qq_line.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_quantile.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_raster.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_rect.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_ribbon.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_rug.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_segment.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_sina.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_smooth.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_spoke.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_step.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_text.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_tile.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/geoms/geom_vline.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/ggplot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/guides/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/guides/guide.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/guides/guide_axis.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/guides/guide_colorbar.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/guides/guide_legend.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/guides/guides.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/iapi.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/labels.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/layer.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/mapping/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/mapping/_env.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/options.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/plot_composition/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/plot_composition/_compose.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/plot_composition/_plotspec.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/plot_composition/_spacer.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position_dodge.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position_dodge2.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position_fill.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position_identity.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position_jitter.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position_jitterdodge.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position_nudge.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/positions/position_stack.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/py.typed +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/qplot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/_expand.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/_runtime_typing.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/limits.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/range.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_alpha.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_color.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_continuous.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_datetime.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_discrete.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_identity.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_linetype.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_manual.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_shape.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_size.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_stroke.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scale_xy.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/scales/scales.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/binning.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/density.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/distributions.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/smoothers.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_bin.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_bin_2d.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_bindot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_boxplot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_count.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_density.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_density_2d.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_ecdf.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_ellipse.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_function.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_hull.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_identity.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_pointdensity.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_qq.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_qq_line.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_quantile.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_smooth.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_sum.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_summary.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_summary_bin.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_unique.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/stats/stat_ydensity.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/elements/__init__.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/elements/element_base.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/elements/element_blank.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/elements/element_line.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/elements/element_rect.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/elements/element_text.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/elements/margin.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/seaborn_rcmod.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/targets.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_538.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_bw.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_classic.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_dark.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_gray.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_light.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_linedraw.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_matplotlib.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_minimal.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_seaborn.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_tufte.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_void.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/themes/theme_xkcd.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/typing.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine/watermark.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine.egg-info/dependency_links.txt +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine.egg-info/requires.txt +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/plotnine.egg-info/top_level.txt +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/pyproject.toml +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/requirements/doc.txt +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/setup.cfg +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_aes/geom_crossbar.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_aes/reorder.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_aes/reorder_index.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_aes/stat_bin_2d.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_aes/stat_ecdf.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_aes/test_stat_function.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotate/multiple_annotation_geoms.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_logticks/annotation_logticks.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_5.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_8.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete_bottom.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_logticks/annotation_logticks_faceting.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_stripes/annotation_stripes.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_continuous_scale.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_faceting.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_direction_extend.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range_cycle.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_annotation_stripes/annotation_stripes_single_stripe.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_coords/coord_fixed.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_coords/coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_coords/coord_trans.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_coords/coord_trans_backtransform.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_coords/coord_trans_reverse.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_coords/datetime_scale_limits.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/aslabeller_dict_0tag.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/aslabeller_func_hashtagit.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/label_both.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/label_context.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/label_context_wrap2vars.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/label_value.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/labeller_cols_both_grid.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/labeller_cols_both_wrap.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/labeller_towords.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facet_labelling/uneven_num_of_lines.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/array_mapping_and_evaluation.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/dir_v_ncol.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_drop_false.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_expression.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_formula_only_cols.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_formula_only_rows.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_margins.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_one_by_one_var.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_scales_free_x.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_scales_free_y.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_space_free.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_grid_space_ratios.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_wrap_direction_v.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_wrap_expression.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_wrap_label_both.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_wrap_not_as_table.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_wrap_not_as_table_direction_v.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_wrap_one_var.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/facet_wrap_two_vars.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/manual_mapping_with_lists.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/non_mapped_facetting.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_facets/variable_and_annotate.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_abline/aes_inheritance.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_abline/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_bar_col_histogram/bar-count.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_bar_col_histogram/col.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_bar_col_histogram/histogram-count.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_bar_col_histogram/stat-count-float.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_bar_col_histogram/stat-count-int.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_bin_2d/drop_false.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_bin_2d/drop_true.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_blank/blank.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_boxplot/aesthetics+coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_boxplot/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_boxplot/no_outliers.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_boxplot/params.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_boxplot/position_nudge.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_boxplot/weight.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_count/continuous_x_y.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_count/discrete_x.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_count/discrete_y.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_crossbar/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density/bounds.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density/few_datapoints.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density/gaussian-trimmed.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density/gaussian.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density/gaussian_weighted.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density/triangular.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density_2d/contours.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density_2d/points.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_density_2d/polygon.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/binaxis_y.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/dotdensity.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/group_basic.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/group_stackgroups.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/group_stackgroups_binaxis_y.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/histodot.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/stackdir_center.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/stackdir_centerwhole.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/stackdir_down.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_dotplot/stackratio.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbar_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbarh_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_freqpoly/midpoint.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_hline/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_linerange_pointrange/linerange_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_linerange_pointrange/pointrange_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_map/facet_wrap.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_map/geometries.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_map/multipoint.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_map/multipolygon.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_path_line_step/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_path_line_step/arrow.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_path_line_step/arrow_facets.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_path_line_step/missing_values.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_path_line_step/no_missing_values.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_path_line_step/path_line_step.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_path_line_step/step.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_path_line_step/step_mid.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_point/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_point/color_only_mapping.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_point/custom_shapes.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_point/legend_transparency.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_point/no_fill.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_point/no_mapping.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_pointdensity/contours.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_pointdensity/points.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_polygon/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_polygon/no_fill.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_qq_qq_line/normal.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_qq_qq_line/normal_with_line.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_quantile/lines.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_raster/gap_no_interpolation.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_raster/gap_with_interpolation.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_raster/rectangle.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_raster/square.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_rect_tile/coord-trans-groups.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_rect_tile/coord-trans.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_rect_tile/infinite-rects.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_rect_tile/rect-aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_rect_tile/rect-nofill.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_rect_tile/tile-aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_ribbon_area/area_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_ribbon_area/ribbon_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_ribbon_area/ribbon_coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_ribbon_area/ribbon_facetting.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type_coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_ribbon_area/ribbon_where.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_rug/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_rug/coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_segment/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_segment/arrow.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_sina/method_counts.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_sina/scale_area+coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_sina/scale_area.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_sina/scale_count.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/continuous_x.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/continuous_x_fullrange.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/coord_trans_se_false.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/discrete_x.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/discrete_x_fullrange.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/glm_formula.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/gls_formula.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/init_and_fit_kwargs.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/legend_fill_ratio.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/linear_smooth.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/linear_smooth_no_ci.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/lm_formula.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/lm_formula_weights.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/non_linear_smooth.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/non_linear_smooth_no_ci.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/rlm_formula.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_smooth/sorts_by_x.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_spoke/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_spoke/test_unmapped_angle.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_text_label/adjust_label.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_text_label/adjust_text.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_text_label/adjust_text_default_color.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_text_label/format_missing_values.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_text_label/label_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_text_label/text_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_violin/aesthetics+coord_flip.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_violin/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_violin/no_trim.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_violin/quantiles_width_dodge.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_violin/scale.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_violin/scales_free.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_violin/style.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_violin/style_alternating.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_geom_vline/aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_ggplot_internals/after_scale_mapping.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_ggplot_internals/to_pandas.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_guide_internals/guide_legend_after_scale.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layers/inserting_layers.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/axis_title_x_justification.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/axis_title_y_justification.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/colorbar_frame.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/default.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/default_tag_location.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/different_colorbar_themes.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/facet_grid.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/facet_wrap.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/inside_legend_90pct_top_right.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/inside_legend_left.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/inside_legend_top.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/inside_legend_top_right.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/justification_with_blank_title_and_text.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/legend_at_the_bottom.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/legend_at_top.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/legend_on_the_left.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/legends_in_different_positions.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/margin_bottom.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/outside_legend_bottom_left.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/outside_legend_left_top.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/outside_legend_right_bottom.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/outside_legend_top_right.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/panel_bottomleft.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/panel_topleft_margin_in_fig.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt_ar1.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/panel_xycoords.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/plot_margin_aspect_ratio.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/plot_margin_protruding_axis_text.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/plot_title_justification.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/plot_titles_and_caption_positioning.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/plot_topright.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/plot_topright_margin_in_fig.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/plot_topright_margin_in_pt.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/plot_xycoords.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_layout/turn_off_guide.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/dodge.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/dodge2.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/dodge2_preserve_single_interval.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/dodge2_varwidth.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/dodge_preserve_single.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/dodge_preserve_single_text.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/dodge_segment.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/fill.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/jitter.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/jitterdodge.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/nudge.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/stack-negative.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/stack-non-linear-scale.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_position/stack.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/arrays.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/multiple_geoms.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/onlyx.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/onlyy.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/range.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/sample.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/scalars.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/series_labelling.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/string-arrays.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/xlim.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_qplot/ylim.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/bool_mapping.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/breaks_and_labels_outside_of_limits.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/datetime_scale_expansion.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/datetime_scale_limits.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/discrete_xy_scale_drop_limits.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/expand_limits.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/legend_ordering_added_scales.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_1.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_2.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_1.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_2.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/legend_ordering_mixed_scope_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/missing_data_discrete_position_scale.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/missing_data_discrete_scale.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/missing_manual_dict_aesthetic.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/multiple_aesthetics.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/ordinal_scale.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/test_legend_ordering_with_identity_scale.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/transform_aes_defaults_and_params.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_internals/transform_datetime_aes_param.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_labelling/caption_complex.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_labelling/caption_simple.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_labelling/labelling_with_colour.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_strings.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_tuples.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_scale_symlog/scale_y_symlog.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_ecdf/computed_y_column.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_ecdf/ecdf.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_ecdf/ecdf_no_pad.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_ellipse/ellipse.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_function/args.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_function/limits.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_hull/hull.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary/fun_args.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary/mean_cl_boot.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary/mean_cl_normal.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary/mean_sdl.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary/mean_se.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary/median_hilow.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary/summary_functions.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary_bin/continuous_x.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary_bin/discrete_x.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_stat_summary_bin/setting_binwidth.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/axis_ticks_and_length.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/element_text_with_sequence_values.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/no_ticks.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_538.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_bw.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_classic.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_dark.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_gray.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_light.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_linedraw.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_matplotlib.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_minimal.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_tufte.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_void.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_theme/theme_xkcd.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/baseline_images/test_watermark/watermark.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/conftest.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/images/plotnine-watermark.png +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_aes.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_animation.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_annotate.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_annotation_logticks.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_annotation_stripes.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_binning.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_coords.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_doctools.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_facet_labelling.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_facets.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_abline.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_bin_2d.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_blank.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_boxplot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_count.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_crossbar.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_density.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_density_2d.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_dotplot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_errorbar_errorbarh.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_freqpoly.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_hline.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_linerange_pointrange.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_map.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_path_line_step.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_point.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_pointdensity.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_polygon.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_qq_qq_line.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_quantile.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_raster.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_rect_tile.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_ribbon_area.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_rug.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_segment.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_smooth.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_spoke.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_text_label.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_geom_vline.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_ggplot_internals.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_ggsave.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_guide_internals.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_layers.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_layout.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_lint_and_format.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_position.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_qplot.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_save_as_pdf_pages.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_scale_internals.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_scale_labelling.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_scale_linetype.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_scale_symlog.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_stat.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_stat_calculate_methods.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_stat_ecdf.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_stat_ellipse.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_stat_function.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_stat_hull.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_stat_summary.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_stat_summary_bin.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_theme.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_utils.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tests/test_watermark.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tools/gha_check_semver.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tools/release-checklist-tpl.md +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tools/release-checklist.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tools/term.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tools/update_baseline_images.py +0 -0
- {plotnine-0.15.0.dev2 → plotnine-0.15.0.dev3}/tools/visualize_tests.py +0 -0
|
@@ -38,6 +38,17 @@ quartodoc:
|
|
|
38
38
|
- after_scale
|
|
39
39
|
- stage
|
|
40
40
|
|
|
41
|
+
- subtitle: Functions in the Aesthetic Evaluation Environment
|
|
42
|
+
desc: |
|
|
43
|
+
The expressions you write in the `aes()` call are evaluated inside an
|
|
44
|
+
environment with a few functions that you may need from time to time.
|
|
45
|
+
These functions are for your convenience, and you can expect them to
|
|
46
|
+
to always be there.
|
|
47
|
+
package: plotnine.mapping._eval_environment
|
|
48
|
+
contents:
|
|
49
|
+
- factor
|
|
50
|
+
- reorder
|
|
51
|
+
|
|
41
52
|
- title: Geoms
|
|
42
53
|
desc: |
|
|
43
54
|
Geometric objects (geoms) are responsible for the visual representation
|
|
@@ -68,12 +68,22 @@ title: Changelog
|
|
|
68
68
|
)
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
+
- Geoms [](:class:`~plotnine.geom_bar`) and [](:class:`~plotnine.geom_col`) have
|
|
72
|
+
gained new parameter `just` that controls how the bars align with the axis break point.
|
|
73
|
+
|
|
74
|
+
- [](:class:`~plotnine.geom_sina`) has gained new parameter `style` just like
|
|
75
|
+
[](:class:`~plotnine.geom_violin`), which make one-sided (half) sina plots.
|
|
76
|
+
|
|
71
77
|
### Enhancements
|
|
72
78
|
|
|
73
79
|
- Included datasets [](:attr:`~plotnine.data.mpg`), [](:attr:`~plotnine.data.msleep`) and
|
|
74
80
|
[](:attr:`~plotnine.data.midwest`) no longer have any of their columns as categoricals.
|
|
75
81
|
This matches the respective datasets in R. {{< issue 913 >}}
|
|
76
82
|
|
|
83
|
+
- When the `width` of the violins in [](:class:`~plotnine.geom_violin`) is wider than their
|
|
84
|
+
normal area, they now overlap with those closest to the origin on top. This makes it possible
|
|
85
|
+
to create overlapping ridge plots using half violins.
|
|
86
|
+
|
|
77
87
|
### Bug Fixes
|
|
78
88
|
|
|
79
89
|
- Fixed bug in with the `legend_key_height` themeable where it wasn't applied.
|
|
@@ -90,6 +100,7 @@ title: Changelog
|
|
|
90
100
|
- Fixed bug where computed aesthetic from `after_scale` are were not applied to the legend.
|
|
91
101
|
{{< issue 926 >}}
|
|
92
102
|
|
|
103
|
+
- Fixed theming of minor x axis ticks.
|
|
93
104
|
|
|
94
105
|
## v0.14.5
|
|
95
106
|
(2025-01-02)
|
|
@@ -299,40 +299,6 @@ class LayoutItems:
|
|
|
299
299
|
|
|
300
300
|
return chain(major, minor)
|
|
301
301
|
|
|
302
|
-
def axis_text_x_margin(self, ax: Axes) -> Iterator[float]:
|
|
303
|
-
"""
|
|
304
|
-
Return XTicks paddings
|
|
305
|
-
"""
|
|
306
|
-
# In plotnine tick padding are specified as a margin to the
|
|
307
|
-
# the axis_text.
|
|
308
|
-
major, minor = [], []
|
|
309
|
-
if not self._is_blank("axis_text_x"):
|
|
310
|
-
h = self.plot.figure.bbox.height
|
|
311
|
-
major = [
|
|
312
|
-
(t.get_pad() or 0) / h for t in ax.xaxis.get_major_ticks()
|
|
313
|
-
]
|
|
314
|
-
minor = [
|
|
315
|
-
(t.get_pad() or 0) / h for t in ax.xaxis.get_minor_ticks()
|
|
316
|
-
]
|
|
317
|
-
return chain(major, minor)
|
|
318
|
-
|
|
319
|
-
def axis_text_y_margin(self, ax: Axes) -> Iterator[float]:
|
|
320
|
-
"""
|
|
321
|
-
Return YTicks paddings
|
|
322
|
-
"""
|
|
323
|
-
# In plotnine tick padding are specified as a margin to the
|
|
324
|
-
# the axis_text.
|
|
325
|
-
major, minor = [], []
|
|
326
|
-
if not self._is_blank("axis_text_y"):
|
|
327
|
-
w = self.plot.figure.bbox.width
|
|
328
|
-
major = [
|
|
329
|
-
(t.get_pad() or 0) / w for t in ax.yaxis.get_major_ticks()
|
|
330
|
-
]
|
|
331
|
-
minor = [
|
|
332
|
-
(t.get_pad() or 0) / w for t in ax.yaxis.get_minor_ticks()
|
|
333
|
-
]
|
|
334
|
-
return chain(major, minor)
|
|
335
|
-
|
|
336
302
|
def strip_text_x_height(self, position: StripPosition) -> float:
|
|
337
303
|
"""
|
|
338
304
|
Height taken up by the top strips
|
|
@@ -377,10 +343,7 @@ class LayoutItems:
|
|
|
377
343
|
Return maximum height[figure space] of x tick labels
|
|
378
344
|
"""
|
|
379
345
|
heights = [
|
|
380
|
-
self.calc.tight_height(label)
|
|
381
|
-
for label, pad in zip(
|
|
382
|
-
self.axis_text_x(ax), self.axis_text_x_margin(ax)
|
|
383
|
-
)
|
|
346
|
+
self.calc.tight_height(label) for label in self.axis_text_x(ax)
|
|
384
347
|
]
|
|
385
348
|
return max(heights) if len(heights) else 0
|
|
386
349
|
|
|
@@ -410,10 +373,7 @@ class LayoutItems:
|
|
|
410
373
|
Return maximum width[figure space] of y tick labels
|
|
411
374
|
"""
|
|
412
375
|
widths = [
|
|
413
|
-
self.calc.tight_width(label)
|
|
414
|
-
for label, pad in zip(
|
|
415
|
-
self.axis_text_y(ax), self.axis_text_y_margin(ax)
|
|
416
|
-
)
|
|
376
|
+
self.calc.tight_width(label) for label in self.axis_text_y(ax)
|
|
417
377
|
]
|
|
418
378
|
return max(widths) if len(widths) else 0
|
|
419
379
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import abc
|
|
4
|
-
from contextlib import suppress
|
|
5
4
|
from dataclasses import dataclass
|
|
6
5
|
from functools import cached_property
|
|
7
6
|
from typing import TYPE_CHECKING
|
|
@@ -81,6 +80,13 @@ class LayoutTree:
|
|
|
81
80
|
represents.
|
|
82
81
|
"""
|
|
83
82
|
|
|
83
|
+
@cached_property
|
|
84
|
+
def sub_compositions(self) -> list[LayoutTree]:
|
|
85
|
+
"""
|
|
86
|
+
LayoutTrees of the direct sub compositions of this one
|
|
87
|
+
"""
|
|
88
|
+
return [item for item in self.nodes if isinstance(item, LayoutTree)]
|
|
89
|
+
|
|
84
90
|
@cached_property
|
|
85
91
|
@abc.abstractmethod
|
|
86
92
|
def lefts(self) -> Sequence[float]:
|
|
@@ -141,89 +147,54 @@ class LayoutTree:
|
|
|
141
147
|
In figure dimenstions
|
|
142
148
|
"""
|
|
143
149
|
|
|
144
|
-
|
|
150
|
+
@abc.abstractmethod
|
|
151
|
+
def align(self):
|
|
145
152
|
"""
|
|
146
|
-
Align the
|
|
153
|
+
Align all the edges in this composition & contained compositions
|
|
147
154
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|# | | # |
|
|
151
|
-
|# | | # |
|
|
152
|
-
|-----------| -> |-----------|
|
|
153
|
-
| # | | # |
|
|
154
|
-
| # | | # |
|
|
155
|
-
| # | | # |
|
|
156
|
-
----------- -----------
|
|
155
|
+
This function mutates the layout spaces, specifically the
|
|
156
|
+
alignment_margins along the sides of the plot.
|
|
157
157
|
"""
|
|
158
158
|
|
|
159
|
-
def
|
|
159
|
+
def align_sub_compositions(self):
|
|
160
160
|
"""
|
|
161
|
-
Align the
|
|
162
|
-
|
|
163
|
-
----------- -----------
|
|
164
|
-
| | | | | |
|
|
165
|
-
| | | | | |
|
|
166
|
-
| | | -> | | |
|
|
167
|
-
| |#####| |#####|#####|
|
|
168
|
-
|#####| | | | |
|
|
169
|
-
----------- -----------
|
|
161
|
+
Align the compositions contained in this one
|
|
170
162
|
"""
|
|
163
|
+
# Recurse into the contained compositions
|
|
164
|
+
for tree in self.sub_compositions:
|
|
165
|
+
tree.align()
|
|
171
166
|
|
|
172
|
-
|
|
167
|
+
@property
|
|
168
|
+
def bottoms_align(self) -> bool:
|
|
173
169
|
"""
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
----------- -----------
|
|
177
|
-
| # | | # |
|
|
178
|
-
| # | | # |
|
|
179
|
-
| # | | # |
|
|
180
|
-
|-----------| -> |-----------|
|
|
181
|
-
| #| | # |
|
|
182
|
-
| #| | # |
|
|
183
|
-
| #| | # |
|
|
184
|
-
----------- -----------
|
|
170
|
+
Return True if panel bottoms for the nodes are aligned
|
|
185
171
|
"""
|
|
172
|
+
arr = np.array(self.bottoms)
|
|
173
|
+
return all(arr == arr[0])
|
|
186
174
|
|
|
187
|
-
|
|
175
|
+
@property
|
|
176
|
+
def lefts_align(self) -> bool:
|
|
188
177
|
"""
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
----------- -----------
|
|
192
|
-
|#####| | | | |
|
|
193
|
-
| |#####| |#####|#####|
|
|
194
|
-
| | | -> | | |
|
|
195
|
-
| | | | | |
|
|
196
|
-
| | | | | |
|
|
197
|
-
----------- -----------
|
|
178
|
+
Return True if panel lefts for the nodes are aligned
|
|
198
179
|
"""
|
|
180
|
+
arr = np.array(self.lefts)
|
|
181
|
+
return all(arr == arr[0])
|
|
199
182
|
|
|
200
|
-
|
|
183
|
+
@property
|
|
184
|
+
def tops_align(self) -> bool:
|
|
201
185
|
"""
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
This function mutates the layout spaces, specifically the
|
|
205
|
-
alignment_margins along the sides of the plot.
|
|
186
|
+
Return True if panel tops for the nodes are aligned
|
|
206
187
|
"""
|
|
207
|
-
self.
|
|
208
|
-
|
|
209
|
-
self.align_rights()
|
|
210
|
-
self.align_tops()
|
|
211
|
-
|
|
212
|
-
for item in self.nodes:
|
|
213
|
-
if isinstance(item, LayoutTree):
|
|
214
|
-
item.align()
|
|
215
|
-
|
|
216
|
-
with suppress(AttributeError):
|
|
217
|
-
del self.lefts
|
|
218
|
-
|
|
219
|
-
with suppress(AttributeError):
|
|
220
|
-
del self.bottoms
|
|
188
|
+
arr = np.array(self.tops)
|
|
189
|
+
return all(arr == arr[0])
|
|
221
190
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
191
|
+
@property
|
|
192
|
+
def rights_align(self) -> bool:
|
|
193
|
+
"""
|
|
194
|
+
Return True if panel rights for the nodes are aligned
|
|
195
|
+
"""
|
|
196
|
+
arr = np.array(self.rights)
|
|
197
|
+
return all(arr == arr[0])
|
|
227
198
|
|
|
228
199
|
@property
|
|
229
200
|
@abc.abstractmethod
|
|
@@ -288,22 +259,13 @@ class LayoutTree:
|
|
|
288
259
|
This function mutates the composition gridspecs; specifically the
|
|
289
260
|
width_ratios and height_ratios.
|
|
290
261
|
"""
|
|
291
|
-
self.resize_widths()
|
|
292
|
-
self.resize_heights()
|
|
293
262
|
|
|
294
|
-
|
|
295
|
-
if isinstance(item, LayoutTree):
|
|
296
|
-
item.resize()
|
|
297
|
-
|
|
298
|
-
def resize_widths(self):
|
|
263
|
+
def resize_sub_compositions(self):
|
|
299
264
|
"""
|
|
300
|
-
Resize
|
|
301
|
-
"""
|
|
302
|
-
|
|
303
|
-
def resize_heights(self):
|
|
304
|
-
"""
|
|
305
|
-
Resize the heights of gridspec so that panels have equal heights
|
|
265
|
+
Resize panels in the compositions contained in this one
|
|
306
266
|
"""
|
|
267
|
+
for tree in self.sub_compositions:
|
|
268
|
+
tree.resize()
|
|
307
269
|
|
|
308
270
|
@staticmethod
|
|
309
271
|
def create(
|
|
@@ -368,6 +330,11 @@ class ColumnsTree(LayoutTree):
|
|
|
368
330
|
-------------------
|
|
369
331
|
"""
|
|
370
332
|
|
|
333
|
+
def align(self):
|
|
334
|
+
self.align_tops()
|
|
335
|
+
self.align_bottoms()
|
|
336
|
+
self.align_sub_compositions()
|
|
337
|
+
|
|
371
338
|
@cached_property
|
|
372
339
|
def lefts(self):
|
|
373
340
|
left_item = self.nodes[0]
|
|
@@ -383,14 +350,6 @@ class ColumnsTree(LayoutTree):
|
|
|
383
350
|
else:
|
|
384
351
|
left_item.set_left_alignment_margin(value)
|
|
385
352
|
|
|
386
|
-
def align_bottoms(self):
|
|
387
|
-
values = max(self.bottoms) - np.array(self.bottoms)
|
|
388
|
-
for item, value in zip(self.nodes, values):
|
|
389
|
-
if isinstance(item, LayoutSpaces):
|
|
390
|
-
item.b.alignment_margin = value
|
|
391
|
-
else:
|
|
392
|
-
item.set_bottom_alignment_margin(value)
|
|
393
|
-
|
|
394
353
|
@cached_property
|
|
395
354
|
def bottoms(self):
|
|
396
355
|
values = []
|
|
@@ -401,6 +360,33 @@ class ColumnsTree(LayoutTree):
|
|
|
401
360
|
values.append(max(item.bottoms))
|
|
402
361
|
return values
|
|
403
362
|
|
|
363
|
+
def align_bottoms(self):
|
|
364
|
+
"""
|
|
365
|
+
Align the immediate bottom edges this composition
|
|
366
|
+
|
|
367
|
+
----------- -----------
|
|
368
|
+
| | | | | |
|
|
369
|
+
| | | | | |
|
|
370
|
+
| | | -> | | |
|
|
371
|
+
| |#####| |#####|#####|
|
|
372
|
+
|#####| | | | |
|
|
373
|
+
----------- -----------
|
|
374
|
+
"""
|
|
375
|
+
# If panels are aligned and have a non-zero alignment_margin,
|
|
376
|
+
# aligning them again will set that value to zero and undoes
|
|
377
|
+
# the alignment.
|
|
378
|
+
if self.bottoms_align:
|
|
379
|
+
return
|
|
380
|
+
|
|
381
|
+
values = max(self.bottoms) - np.array(self.bottoms)
|
|
382
|
+
for item, value in zip(self.nodes, values):
|
|
383
|
+
if isinstance(item, LayoutSpaces):
|
|
384
|
+
item.b.alignment_margin = value
|
|
385
|
+
else:
|
|
386
|
+
item.set_bottom_alignment_margin(value)
|
|
387
|
+
|
|
388
|
+
del self.bottoms
|
|
389
|
+
|
|
404
390
|
def set_bottom_alignment_margin(self, value: float):
|
|
405
391
|
for item in self.nodes:
|
|
406
392
|
if isinstance(item, LayoutSpaces):
|
|
@@ -423,14 +409,6 @@ class ColumnsTree(LayoutTree):
|
|
|
423
409
|
else:
|
|
424
410
|
right_item.set_right_alignment_margin(value)
|
|
425
411
|
|
|
426
|
-
def align_tops(self):
|
|
427
|
-
values = np.array(self.tops) - min(self.tops)
|
|
428
|
-
for item, value in zip(self.nodes, values):
|
|
429
|
-
if isinstance(item, LayoutSpaces):
|
|
430
|
-
item.t.alignment_margin = value
|
|
431
|
-
else:
|
|
432
|
-
item.set_top_alignment_margin(value)
|
|
433
|
-
|
|
434
412
|
@cached_property
|
|
435
413
|
def tops(self):
|
|
436
414
|
values = []
|
|
@@ -441,6 +419,30 @@ class ColumnsTree(LayoutTree):
|
|
|
441
419
|
values.append(min(item.tops))
|
|
442
420
|
return values
|
|
443
421
|
|
|
422
|
+
def align_tops(self):
|
|
423
|
+
"""
|
|
424
|
+
Align the immediate top edges in this composition
|
|
425
|
+
|
|
426
|
+
----------- -----------
|
|
427
|
+
|#####| | | | |
|
|
428
|
+
| |#####| |#####|#####|
|
|
429
|
+
| | | -> | | |
|
|
430
|
+
| | | | | |
|
|
431
|
+
| | | | | |
|
|
432
|
+
----------- -----------
|
|
433
|
+
"""
|
|
434
|
+
if self.tops_align:
|
|
435
|
+
return
|
|
436
|
+
|
|
437
|
+
values = np.array(self.tops) - min(self.tops)
|
|
438
|
+
for item, value in zip(self.nodes, values):
|
|
439
|
+
if isinstance(item, LayoutSpaces):
|
|
440
|
+
item.t.alignment_margin = value
|
|
441
|
+
else:
|
|
442
|
+
item.set_top_alignment_margin(value)
|
|
443
|
+
|
|
444
|
+
del self.tops
|
|
445
|
+
|
|
444
446
|
def set_top_alignment_margin(self, value: float):
|
|
445
447
|
for item in self.nodes:
|
|
446
448
|
if isinstance(item, LayoutSpaces):
|
|
@@ -476,7 +478,10 @@ class ColumnsTree(LayoutTree):
|
|
|
476
478
|
"""
|
|
477
479
|
return max(self.plot_heights)
|
|
478
480
|
|
|
479
|
-
def
|
|
481
|
+
def resize(self):
|
|
482
|
+
"""
|
|
483
|
+
Resize the widths of gridspec so that panels have equal widths
|
|
484
|
+
"""
|
|
480
485
|
# The new width of each panel is the average width of all
|
|
481
486
|
# the panels plus all the space to the left and right
|
|
482
487
|
# of the panels.
|
|
@@ -486,6 +491,7 @@ class ColumnsTree(LayoutTree):
|
|
|
486
491
|
new_plot_widths = panel_widths.mean() + non_panel_space
|
|
487
492
|
width_ratios = new_plot_widths / new_plot_widths.min()
|
|
488
493
|
self.gridspec.set_width_ratios(width_ratios)
|
|
494
|
+
self.resize_sub_compositions()
|
|
489
495
|
|
|
490
496
|
|
|
491
497
|
@dataclass
|
|
@@ -506,13 +512,10 @@ class RowsTree(LayoutTree):
|
|
|
506
512
|
-------------------
|
|
507
513
|
"""
|
|
508
514
|
|
|
509
|
-
def
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
item.l.alignment_margin = value
|
|
514
|
-
else:
|
|
515
|
-
item.set_left_alignment_margin(value)
|
|
515
|
+
def align(self):
|
|
516
|
+
self.align_lefts()
|
|
517
|
+
self.align_rights()
|
|
518
|
+
self.align_sub_compositions()
|
|
516
519
|
|
|
517
520
|
@cached_property
|
|
518
521
|
def lefts(self):
|
|
@@ -524,6 +527,32 @@ class RowsTree(LayoutTree):
|
|
|
524
527
|
values.append(max(item.lefts))
|
|
525
528
|
return values
|
|
526
529
|
|
|
530
|
+
def align_lefts(self):
|
|
531
|
+
"""
|
|
532
|
+
Align the immediate left edges in this composition
|
|
533
|
+
|
|
534
|
+
----------- -----------
|
|
535
|
+
|# | | # |
|
|
536
|
+
|# | | # |
|
|
537
|
+
|# | | # |
|
|
538
|
+
|-----------| -> |-----------|
|
|
539
|
+
| # | | # |
|
|
540
|
+
| # | | # |
|
|
541
|
+
| # | | # |
|
|
542
|
+
----------- -----------
|
|
543
|
+
"""
|
|
544
|
+
if self.lefts_align:
|
|
545
|
+
return
|
|
546
|
+
|
|
547
|
+
values = max(self.lefts) - np.array(self.lefts)
|
|
548
|
+
for item, value in zip(self.nodes, values):
|
|
549
|
+
if isinstance(item, LayoutSpaces):
|
|
550
|
+
item.l.alignment_margin = value
|
|
551
|
+
else:
|
|
552
|
+
item.set_left_alignment_margin(value)
|
|
553
|
+
|
|
554
|
+
del self.lefts
|
|
555
|
+
|
|
527
556
|
def set_left_alignment_margin(self, value: float):
|
|
528
557
|
for item in self.nodes:
|
|
529
558
|
if isinstance(item, LayoutSpaces):
|
|
@@ -546,14 +575,6 @@ class RowsTree(LayoutTree):
|
|
|
546
575
|
else:
|
|
547
576
|
bottom_item.set_bottom_alignment_margin(value)
|
|
548
577
|
|
|
549
|
-
def align_rights(self):
|
|
550
|
-
values = np.array(self.rights) - min(self.rights)
|
|
551
|
-
for item, value in zip(self.nodes, values):
|
|
552
|
-
if isinstance(item, LayoutSpaces):
|
|
553
|
-
item.r.alignment_margin = value
|
|
554
|
-
else:
|
|
555
|
-
item.set_right_alignment_margin(value)
|
|
556
|
-
|
|
557
578
|
@cached_property
|
|
558
579
|
def rights(self):
|
|
559
580
|
values = []
|
|
@@ -564,6 +585,32 @@ class RowsTree(LayoutTree):
|
|
|
564
585
|
values.append(min(item.rights))
|
|
565
586
|
return values
|
|
566
587
|
|
|
588
|
+
def align_rights(self):
|
|
589
|
+
"""
|
|
590
|
+
Align the immediate right edges in this composition
|
|
591
|
+
|
|
592
|
+
----------- -----------
|
|
593
|
+
| # | | # |
|
|
594
|
+
| # | | # |
|
|
595
|
+
| # | | # |
|
|
596
|
+
|-----------| -> |-----------|
|
|
597
|
+
| #| | # |
|
|
598
|
+
| #| | # |
|
|
599
|
+
| #| | # |
|
|
600
|
+
----------- -----------
|
|
601
|
+
"""
|
|
602
|
+
if self.rights_align:
|
|
603
|
+
return
|
|
604
|
+
|
|
605
|
+
values = np.array(self.rights) - min(self.rights)
|
|
606
|
+
for item, value in zip(self.nodes, values):
|
|
607
|
+
if isinstance(item, LayoutSpaces):
|
|
608
|
+
item.r.alignment_margin = value
|
|
609
|
+
else:
|
|
610
|
+
item.set_right_alignment_margin(value)
|
|
611
|
+
|
|
612
|
+
del self.rights
|
|
613
|
+
|
|
567
614
|
def set_right_alignment_margin(self, value: float):
|
|
568
615
|
for item in self.nodes:
|
|
569
616
|
if isinstance(item, LayoutSpaces):
|
|
@@ -614,8 +661,13 @@ class RowsTree(LayoutTree):
|
|
|
614
661
|
"""
|
|
615
662
|
return sum(self.plot_heights)
|
|
616
663
|
|
|
617
|
-
def
|
|
618
|
-
|
|
664
|
+
def resize(self):
|
|
665
|
+
"""
|
|
666
|
+
Resize the heights of gridspec so that panels have equal heights
|
|
667
|
+
|
|
668
|
+
This method resizes (recursively) the contained compositions
|
|
669
|
+
"""
|
|
670
|
+
# The new height of each panel is the average width of all
|
|
619
671
|
# the panels plus all the space above and below the panels.
|
|
620
672
|
plot_heights = np.array(self.plot_heights)
|
|
621
673
|
panel_heights = np.array(self.panel_heights)
|
|
@@ -623,3 +675,4 @@ class RowsTree(LayoutTree):
|
|
|
623
675
|
new_plot_heights = panel_heights.mean() + non_panel_space
|
|
624
676
|
height_ratios = new_plot_heights / new_plot_heights.max()
|
|
625
677
|
self.gridspec.set_height_ratios(height_ratios)
|
|
678
|
+
self.resize_sub_compositions()
|
|
@@ -222,7 +222,9 @@ class left_spaces(_side_spaces):
|
|
|
222
222
|
axis_title_y_margin_left: float = 0
|
|
223
223
|
axis_title_y: float = 0
|
|
224
224
|
axis_title_y_margin_right: float = 0
|
|
225
|
+
axis_text_y_margin_left: float = 0
|
|
225
226
|
axis_text_y: float = 0
|
|
227
|
+
axis_text_y_margin_right: float = 0
|
|
226
228
|
axis_ticks_y: float = 0
|
|
227
229
|
|
|
228
230
|
def _calculate(self):
|
|
@@ -256,6 +258,11 @@ class left_spaces(_side_spaces):
|
|
|
256
258
|
|
|
257
259
|
# Account for the space consumed by the axis
|
|
258
260
|
self.axis_text_y = items.axis_text_y_max_width_at("first_col")
|
|
261
|
+
if self.axis_text_y:
|
|
262
|
+
m = theme.get_margin("axis_text_y").fig
|
|
263
|
+
self.axis_text_y_margin_left = m.l
|
|
264
|
+
self.axis_text_y_margin_right = m.r
|
|
265
|
+
|
|
259
266
|
self.axis_ticks_y = items.axis_ticks_y_max_width_at("first_col")
|
|
260
267
|
|
|
261
268
|
# Adjust plot_margin to make room for ylabels that protude well
|
|
@@ -576,7 +583,9 @@ class bottom_spaces(_side_spaces):
|
|
|
576
583
|
axis_title_x_margin_bottom: float = 0
|
|
577
584
|
axis_title_x: float = 0
|
|
578
585
|
axis_title_x_margin_top: float = 0
|
|
586
|
+
axis_text_x_margin_bottom: float = 0
|
|
579
587
|
axis_text_x: float = 0
|
|
588
|
+
axis_text_x_margin_top: float = 0
|
|
580
589
|
axis_ticks_x: float = 0
|
|
581
590
|
|
|
582
591
|
def _calculate(self):
|
|
@@ -616,8 +625,12 @@ class bottom_spaces(_side_spaces):
|
|
|
616
625
|
self.axis_title_x_margin_top = m.t * F
|
|
617
626
|
|
|
618
627
|
# Account for the space consumed by the axis
|
|
619
|
-
self.axis_ticks_x = items.axis_ticks_x_max_height_at("last_row")
|
|
620
628
|
self.axis_text_x = items.axis_text_x_max_height_at("last_row")
|
|
629
|
+
if self.axis_text_x:
|
|
630
|
+
m = theme.get_margin("axis_text_x").fig
|
|
631
|
+
self.axis_text_x_margin_bottom = m.b
|
|
632
|
+
self.axis_text_x_margin_top = m.t
|
|
633
|
+
self.axis_ticks_x = items.axis_ticks_x_max_height_at("last_row")
|
|
621
634
|
|
|
622
635
|
# Adjust plot_margin to make room for ylabels that protude well
|
|
623
636
|
# beyond the axes
|
|
@@ -736,7 +749,7 @@ class LayoutSpaces:
|
|
|
736
749
|
sw: float = field(init=False, default=0)
|
|
737
750
|
"""vertical spacing btn panels w.r.t figure"""
|
|
738
751
|
|
|
739
|
-
gsparams: GridSpecParams = field(init=False)
|
|
752
|
+
gsparams: GridSpecParams = field(init=False, repr=False)
|
|
740
753
|
"""Grid spacing btn panels w.r.t figure"""
|
|
741
754
|
|
|
742
755
|
def __post_init__(self):
|
|
@@ -20,6 +20,11 @@ class geom_bar(geom_rect):
|
|
|
20
20
|
Parameters
|
|
21
21
|
----------
|
|
22
22
|
{common_parameters}
|
|
23
|
+
just : float, default=0.5
|
|
24
|
+
How to align the column with respect to the axis breaks. The default
|
|
25
|
+
`0.5` aligns the center of the column with the break. `0` aligns the
|
|
26
|
+
left of the of the column with the break and `1` aligns the right of
|
|
27
|
+
the column with the break.
|
|
23
28
|
width : float, default=None
|
|
24
29
|
Bar width. If `None`{.py}, the width is set to
|
|
25
30
|
`90%` of the resolution of the data.
|
|
@@ -35,6 +40,7 @@ class geom_bar(geom_rect):
|
|
|
35
40
|
"stat": "count",
|
|
36
41
|
"position": "stack",
|
|
37
42
|
"na_rm": False,
|
|
43
|
+
"just": 0.5,
|
|
38
44
|
"width": None,
|
|
39
45
|
}
|
|
40
46
|
|
|
@@ -45,6 +51,8 @@ class geom_bar(geom_rect):
|
|
|
45
51
|
else:
|
|
46
52
|
data["width"] = resolution(data["x"], False) * 0.9
|
|
47
53
|
|
|
54
|
+
just = self.params.get("just", 0.5)
|
|
55
|
+
|
|
48
56
|
bool_idx = data["y"] < 0
|
|
49
57
|
|
|
50
58
|
data["ymin"] = 0.0
|
|
@@ -53,7 +61,7 @@ class geom_bar(geom_rect):
|
|
|
53
61
|
data["ymax"] = data["y"]
|
|
54
62
|
data.loc[bool_idx, "ymax"] = 0.0
|
|
55
63
|
|
|
56
|
-
data["xmin"] = data["x"] - data["width"]
|
|
57
|
-
data["xmax"] = data["x"] + data["width"]
|
|
64
|
+
data["xmin"] = data["x"] - data["width"] * just
|
|
65
|
+
data["xmax"] = data["x"] + data["width"] * (1 - just)
|
|
58
66
|
del data["width"]
|
|
59
67
|
return data
|
|
@@ -17,6 +17,11 @@ class geom_col(geom_bar):
|
|
|
17
17
|
Parameters
|
|
18
18
|
----------
|
|
19
19
|
{common_parameters}
|
|
20
|
+
just : float, default=0.5
|
|
21
|
+
How to align the column with respect to the axis breaks. The default
|
|
22
|
+
`0.5` aligns the center of the column with the break. `0` aligns the
|
|
23
|
+
left of the of the column with the break and `1` aligns the right of
|
|
24
|
+
the column with the break.
|
|
20
25
|
width : float, default=None
|
|
21
26
|
Bar width. If `None`{.py}, the width is set to
|
|
22
27
|
`90%` of the resolution of the data.
|
|
@@ -32,5 +37,6 @@ class geom_col(geom_bar):
|
|
|
32
37
|
"stat": "identity",
|
|
33
38
|
"position": "stack",
|
|
34
39
|
"na_rm": False,
|
|
40
|
+
"just": 0.5,
|
|
35
41
|
"width": None,
|
|
36
42
|
}
|