plotnine 0.16.0a2__tar.gz → 0.16.0a4__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.
Files changed (731) hide show
  1. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/PKG-INFO +6 -12
  2. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/README.md +2 -9
  3. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/_quartodoc.yml +8 -0
  4. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/changelog.qmd +36 -0
  5. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/_composition_layout_items.py +43 -0
  6. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/_composition_side_space.py +33 -0
  7. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/_plot_layout_items.py +43 -0
  8. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/_plot_side_space.py +20 -0
  9. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_utils/context.py +12 -8
  10. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/_compose.py +23 -1
  11. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/_plot_annotation.py +6 -1
  12. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/ggplot.py +46 -1
  13. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/guides/guide_legend.py +17 -3
  14. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/iapi.py +3 -2
  15. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/labels.py +7 -0
  16. plotnine-0.16.0a4/plotnine/session.py +45 -0
  17. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/targets.py +4 -0
  18. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme.py +11 -1
  19. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_gray.py +11 -1
  20. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_matplotlib.py +9 -0
  21. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_seaborn.py +10 -0
  22. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_void.py +9 -1
  23. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/themeable.py +91 -2
  24. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine.egg-info/PKG-INFO +6 -12
  25. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine.egg-info/SOURCES.txt +7 -0
  26. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine.egg-info/requires.txt +3 -2
  27. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/pyproject.toml +3 -2
  28. plotnine-0.16.0a4/tests/baseline_images/test_guide_internals/guide_legend_missing_value_for_shapes.png +0 -0
  29. plotnine-0.16.0a4/tests/baseline_images/test_layout/axis_text_justification.png +0 -0
  30. plotnine-0.16.0a4/tests/baseline_images/test_layout/axis_title_x_justification.png +0 -0
  31. plotnine-0.16.0a4/tests/baseline_images/test_layout/axis_title_y_justification.png +0 -0
  32. plotnine-0.16.0a4/tests/baseline_images/test_layout/colorbar_frame.png +0 -0
  33. plotnine-0.16.0a4/tests/baseline_images/test_layout/default.png +0 -0
  34. plotnine-0.16.0a4/tests/baseline_images/test_layout/different_colorbar_themes.png +0 -0
  35. plotnine-0.16.0a4/tests/baseline_images/test_layout/facet_grid.png +0 -0
  36. plotnine-0.16.0a4/tests/baseline_images/test_layout/facet_wrap.png +0 -0
  37. plotnine-0.16.0a4/tests/baseline_images/test_layout/facet_wrap_scales_free.png +0 -0
  38. plotnine-0.16.0a4/tests/baseline_images/test_layout/legend_at_the_bottom.png +0 -0
  39. plotnine-0.16.0a4/tests/baseline_images/test_layout/legend_at_top.png +0 -0
  40. plotnine-0.16.0a4/tests/baseline_images/test_layout/legend_on_the_left.png +0 -0
  41. plotnine-0.16.0a4/tests/baseline_images/test_layout/legends_in_different_positions.png +0 -0
  42. plotnine-0.16.0a4/tests/baseline_images/test_layout/plot_footer.png +0 -0
  43. plotnine-0.16.0a4/tests/baseline_images/test_layout/plot_footer_background.png +0 -0
  44. plotnine-0.16.0a4/tests/baseline_images/test_layout/plot_title_justification.png +0 -0
  45. plotnine-0.16.0a4/tests/baseline_images/test_layout/plot_titles_and_caption_positioning.png +0 -0
  46. plotnine-0.16.0a4/tests/baseline_images/test_layout/turn_off_guide.png +0 -0
  47. plotnine-0.16.0a4/tests/baseline_images/test_plot_composition/footer.png +0 -0
  48. plotnine-0.16.0a4/tests/baseline_images/test_plot_composition/footers.png +0 -0
  49. plotnine-0.16.0a4/tests/baseline_images/test_plot_composition/horizontal_tag_align.png +0 -0
  50. plotnine-0.16.0a4/tests/baseline_images/test_scale_internals/missing_data_discrete_position_scale.png +0 -0
  51. plotnine-0.16.0a4/tests/baseline_images/test_scale_labelling/caption_complex.png +0 -0
  52. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/conftest.py +0 -21
  53. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_bar_col_histogram.py +2 -4
  54. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_bin_2d.py +2 -4
  55. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_guide_internals.py +6 -0
  56. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_layout.py +16 -0
  57. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_plot_composition.py +38 -0
  58. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_scale_internals.py +6 -3
  59. plotnine-0.16.0a4/tests/test_session.py +43 -0
  60. plotnine-0.16.0a2/tests/baseline_images/test_layout/axis_text_justification.png +0 -0
  61. plotnine-0.16.0a2/tests/baseline_images/test_layout/axis_title_x_justification.png +0 -0
  62. plotnine-0.16.0a2/tests/baseline_images/test_layout/axis_title_y_justification.png +0 -0
  63. plotnine-0.16.0a2/tests/baseline_images/test_layout/colorbar_frame.png +0 -0
  64. plotnine-0.16.0a2/tests/baseline_images/test_layout/default.png +0 -0
  65. plotnine-0.16.0a2/tests/baseline_images/test_layout/different_colorbar_themes.png +0 -0
  66. plotnine-0.16.0a2/tests/baseline_images/test_layout/facet_grid.png +0 -0
  67. plotnine-0.16.0a2/tests/baseline_images/test_layout/facet_wrap.png +0 -0
  68. plotnine-0.16.0a2/tests/baseline_images/test_layout/facet_wrap_scales_free.png +0 -0
  69. plotnine-0.16.0a2/tests/baseline_images/test_layout/legend_at_the_bottom.png +0 -0
  70. plotnine-0.16.0a2/tests/baseline_images/test_layout/legend_at_top.png +0 -0
  71. plotnine-0.16.0a2/tests/baseline_images/test_layout/legend_on_the_left.png +0 -0
  72. plotnine-0.16.0a2/tests/baseline_images/test_layout/legends_in_different_positions.png +0 -0
  73. plotnine-0.16.0a2/tests/baseline_images/test_layout/plot_title_justification.png +0 -0
  74. plotnine-0.16.0a2/tests/baseline_images/test_layout/plot_titles_and_caption_positioning.png +0 -0
  75. plotnine-0.16.0a2/tests/baseline_images/test_layout/turn_off_guide.png +0 -0
  76. plotnine-0.16.0a2/tests/baseline_images/test_plot_composition/horizontal_tag_align.png +0 -0
  77. plotnine-0.16.0a2/tests/baseline_images/test_scale_internals/missing_data_discrete_position_scale.png +0 -0
  78. plotnine-0.16.0a2/tests/baseline_images/test_scale_labelling/caption_complex.png +0 -0
  79. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.gitattributes +0 -0
  80. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.github/DISCUSSION_TEMPLATE/2024-plotnine-contest.yml +0 -0
  81. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.github/DISCUSSION_TEMPLATE/2025-plotnine-contest.yml +0 -0
  82. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.github/utils/_repo.py +0 -0
  83. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.github/utils/please.py +0 -0
  84. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.github/workflows/documentation.yml +0 -0
  85. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.github/workflows/release.yml +0 -0
  86. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.github/workflows/testing.yml +0 -0
  87. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.github/workflows/weekly.yml +0 -0
  88. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.gitignore +0 -0
  89. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.pre-commit-config.yaml +0 -0
  90. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/.readthedocs.yaml +0 -0
  91. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/CITATION.bib +0 -0
  92. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/LICENSE +0 -0
  93. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/Makefile +0 -0
  94. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/code-of-conduct.md +0 -0
  95. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/codecov.yml +0 -0
  96. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/.gitignore +0 -0
  97. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/Makefile +0 -0
  98. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/_config.py +0 -0
  99. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/_quarto.yml +0 -0
  100. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/_renderer.py +0 -0
  101. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/favicon-16x16.png +0 -0
  102. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/favicon-32x32.png +0 -0
  103. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/logo-512.png +0 -0
  104. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/logo.png +0 -0
  105. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/readme-image-1.png +0 -0
  106. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/readme-image-2.png +0 -0
  107. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/readme-image-3.png +0 -0
  108. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/readme-image-4.png +0 -0
  109. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/readme-image-5.png +0 -0
  110. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/readme-image-5alt.png +0 -0
  111. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/images/readme_images.py +0 -0
  112. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/doc/plotnine.scss +0 -0
  113. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/licences/SEABORN_LICENSE +0 -0
  114. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/__init__.py +0 -0
  115. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/__init__.py +0 -0
  116. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/gridspec.py +0 -0
  117. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/__init__.py +0 -0
  118. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/_engine.py +0 -0
  119. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/_grid.py +0 -0
  120. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/_layout_tree.py +0 -0
  121. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/layout_manager/_side_space.py +0 -0
  122. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/offsetbox.py +0 -0
  123. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/patches.py +0 -0
  124. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/text.py +0 -0
  125. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/ticker.py +0 -0
  126. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/transforms.py +0 -0
  127. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_mpl/utils.py +0 -0
  128. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_utils/__init__.py +0 -0
  129. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_utils/dataclasses.py +0 -0
  130. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_utils/dev.py +0 -0
  131. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_utils/ipython.py +0 -0
  132. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_utils/quarto.py +0 -0
  133. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_utils/registry.py +0 -0
  134. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/_utils/yippie.py +0 -0
  135. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/animation.py +0 -0
  136. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/__init__.py +0 -0
  137. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/_beside.py +0 -0
  138. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/_plot_layout.py +0 -0
  139. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/_plot_spacer.py +0 -0
  140. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/_stack.py +0 -0
  141. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/_types.py +0 -0
  142. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/composition/_wrap.py +0 -0
  143. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/coords/__init__.py +0 -0
  144. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/coords/coord.py +0 -0
  145. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/coords/coord_cartesian.py +0 -0
  146. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/coords/coord_fixed.py +0 -0
  147. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/coords/coord_flip.py +0 -0
  148. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/coords/coord_trans.py +0 -0
  149. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/__init__.py +0 -0
  150. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/anscombe-quartet.csv +0 -0
  151. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/diamonds.csv +0 -0
  152. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/economics.csv +0 -0
  153. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/economics_long.csv +0 -0
  154. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/faithful.csv +0 -0
  155. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/faithfuld.csv +0 -0
  156. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/huron.csv +0 -0
  157. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/luv_colours.csv +0 -0
  158. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/meat.csv +0 -0
  159. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/midwest.csv +0 -0
  160. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/mpg.csv +0 -0
  161. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/msleep.csv +0 -0
  162. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/mtcars.csv +0 -0
  163. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/pageviews.csv +0 -0
  164. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/penguins.csv +0 -0
  165. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/presidential.csv +0 -0
  166. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/seals.csv +0 -0
  167. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/data/txhousing.csv +0 -0
  168. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/doctools.py +0 -0
  169. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/exceptions.py +0 -0
  170. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/facets/__init__.py +0 -0
  171. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/facets/facet.py +0 -0
  172. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/facets/facet_grid.py +0 -0
  173. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/facets/facet_null.py +0 -0
  174. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/facets/facet_wrap.py +0 -0
  175. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/facets/labelling.py +0 -0
  176. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/facets/layout.py +0 -0
  177. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/facets/strips.py +0 -0
  178. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/__init__.py +0 -0
  179. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/annotate.py +0 -0
  180. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/annotation_logticks.py +0 -0
  181. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/annotation_stripes.py +0 -0
  182. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom.py +0 -0
  183. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_abline.py +0 -0
  184. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_area.py +0 -0
  185. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_bar.py +0 -0
  186. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_bin_2d.py +0 -0
  187. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_blank.py +0 -0
  188. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_boxplot.py +0 -0
  189. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_col.py +0 -0
  190. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_count.py +0 -0
  191. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_crossbar.py +0 -0
  192. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_density.py +0 -0
  193. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_density_2d.py +0 -0
  194. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_dotplot.py +0 -0
  195. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_errorbar.py +0 -0
  196. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_errorbarh.py +0 -0
  197. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_freqpoly.py +0 -0
  198. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_histogram.py +0 -0
  199. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_hline.py +0 -0
  200. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_jitter.py +0 -0
  201. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_label.py +0 -0
  202. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_line.py +0 -0
  203. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_linerange.py +0 -0
  204. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_map.py +0 -0
  205. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_path.py +0 -0
  206. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_point.py +0 -0
  207. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_pointdensity.py +0 -0
  208. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_pointrange.py +0 -0
  209. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_polygon.py +0 -0
  210. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_qq.py +0 -0
  211. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_qq_line.py +0 -0
  212. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_quantile.py +0 -0
  213. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_raster.py +0 -0
  214. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_rect.py +0 -0
  215. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_ribbon.py +0 -0
  216. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_rug.py +0 -0
  217. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_segment.py +0 -0
  218. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_sina.py +0 -0
  219. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_smooth.py +0 -0
  220. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_spoke.py +0 -0
  221. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_step.py +0 -0
  222. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_text.py +0 -0
  223. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_tile.py +0 -0
  224. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_violin.py +0 -0
  225. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/geoms/geom_vline.py +0 -0
  226. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/guides/__init__.py +0 -0
  227. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/guides/guide.py +0 -0
  228. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/guides/guide_axis.py +0 -0
  229. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/guides/guide_colorbar.py +0 -0
  230. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/guides/guides.py +0 -0
  231. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/helpers.py +0 -0
  232. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/layer.py +0 -0
  233. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/mapping/__init__.py +0 -0
  234. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/mapping/_atomic.py +0 -0
  235. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/mapping/_env.py +0 -0
  236. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/mapping/_eval_environment.py +0 -0
  237. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/mapping/aes.py +0 -0
  238. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/mapping/evaluation.py +0 -0
  239. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/options.py +0 -0
  240. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/__init__.py +0 -0
  241. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position.py +0 -0
  242. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position_dodge.py +0 -0
  243. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position_dodge2.py +0 -0
  244. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position_fill.py +0 -0
  245. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position_identity.py +0 -0
  246. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position_jitter.py +0 -0
  247. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position_jitterdodge.py +0 -0
  248. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position_nudge.py +0 -0
  249. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/positions/position_stack.py +0 -0
  250. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/py.typed +0 -0
  251. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/qplot.py +0 -0
  252. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/__init__.py +0 -0
  253. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/_expand.py +0 -0
  254. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/_runtime_typing.py +0 -0
  255. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/limits.py +0 -0
  256. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/range.py +0 -0
  257. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale.py +0 -0
  258. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_alpha.py +0 -0
  259. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_color.py +0 -0
  260. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_continuous.py +0 -0
  261. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_datetime.py +0 -0
  262. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_discrete.py +0 -0
  263. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_identity.py +0 -0
  264. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_linetype.py +0 -0
  265. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_manual.py +0 -0
  266. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_shape.py +0 -0
  267. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_size.py +0 -0
  268. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_stroke.py +0 -0
  269. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scale_xy.py +0 -0
  270. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/scales/scales.py +0 -0
  271. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/__init__.py +0 -0
  272. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/binning.py +0 -0
  273. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/density.py +0 -0
  274. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/distributions.py +0 -0
  275. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/smoothers.py +0 -0
  276. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat.py +0 -0
  277. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_bin.py +0 -0
  278. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_bin_2d.py +0 -0
  279. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_bindot.py +0 -0
  280. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_boxplot.py +0 -0
  281. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_count.py +0 -0
  282. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_density.py +0 -0
  283. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_density_2d.py +0 -0
  284. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_ecdf.py +0 -0
  285. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_ellipse.py +0 -0
  286. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_function.py +0 -0
  287. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_hull.py +0 -0
  288. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_identity.py +0 -0
  289. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_pointdensity.py +0 -0
  290. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_qq.py +0 -0
  291. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_qq_line.py +0 -0
  292. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_quantile.py +0 -0
  293. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_sina.py +0 -0
  294. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_smooth.py +0 -0
  295. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_sum.py +0 -0
  296. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_summary.py +0 -0
  297. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_summary_bin.py +0 -0
  298. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_unique.py +0 -0
  299. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/stats/stat_ydensity.py +0 -0
  300. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/__init__.py +0 -0
  301. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/elements/__init__.py +0 -0
  302. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/elements/element_base.py +0 -0
  303. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/elements/element_blank.py +0 -0
  304. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/elements/element_line.py +0 -0
  305. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/elements/element_rect.py +0 -0
  306. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/elements/element_text.py +0 -0
  307. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/elements/margin.py +0 -0
  308. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/seaborn_rcmod.py +0 -0
  309. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_538.py +0 -0
  310. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_bw.py +0 -0
  311. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_classic.py +0 -0
  312. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_dark.py +0 -0
  313. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_light.py +0 -0
  314. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_linedraw.py +0 -0
  315. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_minimal.py +0 -0
  316. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_tufte.py +0 -0
  317. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/themes/theme_xkcd.py +0 -0
  318. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/typing.py +0 -0
  319. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine/watermark.py +0 -0
  320. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine.egg-info/dependency_links.txt +0 -0
  321. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/plotnine.egg-info/top_level.txt +0 -0
  322. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/requirements/doc.txt +0 -0
  323. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/setup.cfg +0 -0
  324. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_aes/geom_crossbar.png +0 -0
  325. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_aes/irregular_shapes.png +0 -0
  326. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_aes/reorder.png +0 -0
  327. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_aes/reorder_index.png +0 -0
  328. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_aes/stat_bin_2d.png +0 -0
  329. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_aes/stat_ecdf.png +0 -0
  330. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_aes/test_stat_function.png +0 -0
  331. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotate/annotate_faceting.png +0 -0
  332. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotate/multiple_annotation_geoms.png +0 -0
  333. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks.png +0 -0
  334. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_5.png +0 -0
  335. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_8.png +0 -0
  336. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip.png +0 -0
  337. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete.png +0 -0
  338. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete_bottom.png +0 -0
  339. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_faceting.png +0 -0
  340. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes.png +0 -0
  341. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_continuous_scale.png +0 -0
  342. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_coord_flip.png +0 -0
  343. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_faceting.png +0 -0
  344. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_direction_extend.png +0 -0
  345. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range.png +0 -0
  346. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range_cycle.png +0 -0
  347. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_single_stripe.png +0 -0
  348. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_coords/coord_fixed.png +0 -0
  349. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_coords/coord_flip.png +0 -0
  350. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_coords/coord_trans.png +0 -0
  351. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_coords/coord_trans_backtransform.png +0 -0
  352. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_coords/coord_trans_reverse.png +0 -0
  353. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_coords/datetime_scale_limits.png +0 -0
  354. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/aslabeller_dict_0tag.png +0 -0
  355. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/aslabeller_func_hashtagit.png +0 -0
  356. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/label_both.png +0 -0
  357. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/label_context.png +0 -0
  358. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/label_context_wrap2vars.png +0 -0
  359. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/label_value.png +0 -0
  360. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/labeller_cols_both_grid.png +0 -0
  361. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/labeller_cols_both_wrap.png +0 -0
  362. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/labeller_towords.png +0 -0
  363. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facet_labelling/uneven_num_of_lines.png +0 -0
  364. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/array_mapping_and_evaluation.png +0 -0
  365. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/dir_v_ncol.png +0 -0
  366. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_drop_false.png +0 -0
  367. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_expression.png +0 -0
  368. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_formula_only_cols.png +0 -0
  369. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_formula_only_rows.png +0 -0
  370. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_margins.png +0 -0
  371. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_one_by_one_var.png +0 -0
  372. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_scales_free_x.png +0 -0
  373. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_scales_free_y.png +0 -0
  374. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_space_free.png +0 -0
  375. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_grid_space_ratios.png +0 -0
  376. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_wrap_direction_v.png +0 -0
  377. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_wrap_expression.png +0 -0
  378. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_wrap_label_both.png +0 -0
  379. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_wrap_not_as_table.png +0 -0
  380. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_wrap_not_as_table_direction_v.png +0 -0
  381. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_wrap_one_var.png +0 -0
  382. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/facet_wrap_two_vars.png +0 -0
  383. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/manual_mapping_with_lists.png +0 -0
  384. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/non_mapped_facetting.png +0 -0
  385. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_facets/variable_and_annotate.png +0 -0
  386. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_abline/aes_inheritance.png +0 -0
  387. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_abline/aesthetics.png +0 -0
  388. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bar_col_histogram/bar-count.png +0 -0
  389. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bar_col_histogram/col.png +0 -0
  390. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bar_col_histogram/col_just.png +0 -0
  391. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bar_col_histogram/histogram-count.png +0 -0
  392. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bar_col_histogram/histogram_weights.png +0 -0
  393. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bar_col_histogram/stat-count-float.png +0 -0
  394. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bar_col_histogram/stat-count-int.png +0 -0
  395. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bin_2d/drop_false.png +0 -0
  396. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_bin_2d/drop_true.png +0 -0
  397. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_blank/blank.png +0 -0
  398. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_boxplot/aesthetics+coord_flip.png +0 -0
  399. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_boxplot/aesthetics.png +0 -0
  400. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_boxplot/no_outliers.png +0 -0
  401. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_boxplot/params.png +0 -0
  402. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_boxplot/position_nudge.png +0 -0
  403. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_boxplot/weight.png +0 -0
  404. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_count/continuous_x_y.png +0 -0
  405. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_count/discrete_x.png +0 -0
  406. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_count/discrete_y.png +0 -0
  407. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_crossbar/aesthetics.png +0 -0
  408. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density/bounds.png +0 -0
  409. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density/few_datapoints.png +0 -0
  410. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density/gaussian-trimmed.png +0 -0
  411. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density/gaussian.png +0 -0
  412. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density/gaussian_weighted.png +0 -0
  413. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density/triangular.png +0 -0
  414. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density_2d/contours.png +0 -0
  415. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density_2d/points.png +0 -0
  416. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_density_2d/polygon.png +0 -0
  417. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/binaxis_y.png +0 -0
  418. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/dotdensity.png +0 -0
  419. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/group_basic.png +0 -0
  420. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/group_stackgroups.png +0 -0
  421. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/group_stackgroups_binaxis_y.png +0 -0
  422. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/histodot.png +0 -0
  423. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/stackdir_center.png +0 -0
  424. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/stackdir_centerwhole.png +0 -0
  425. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/stackdir_down.png +0 -0
  426. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_dotplot/stackratio.png +0 -0
  427. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbar_aesthetics.png +0 -0
  428. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbarh_aesthetics.png +0 -0
  429. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_freqpoly/midpoint.png +0 -0
  430. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_hline/aesthetics.png +0 -0
  431. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_linerange_pointrange/linerange_aesthetics.png +0 -0
  432. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_linerange_pointrange/pointrange_aesthetics.png +0 -0
  433. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_map/facet_wrap.png +0 -0
  434. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_map/geometries.png +0 -0
  435. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_map/multipoint.png +0 -0
  436. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_map/multipolygon.png +0 -0
  437. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_path_line_step/aesthetics.png +0 -0
  438. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_path_line_step/arrow.png +0 -0
  439. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_path_line_step/arrow_facets.png +0 -0
  440. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_path_line_step/missing_values.png +0 -0
  441. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_path_line_step/no_missing_values.png +0 -0
  442. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_path_line_step/path_line_step.png +0 -0
  443. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_path_line_step/step.png +0 -0
  444. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_path_line_step/step_mid.png +0 -0
  445. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_point/aesthetics.png +0 -0
  446. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_point/color_only_mapping.png +0 -0
  447. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_point/custom_shapes.png +0 -0
  448. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_point/legend_transparency.png +0 -0
  449. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_point/no_fill.png +0 -0
  450. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_point/no_mapping.png +0 -0
  451. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_pointdensity/contours.png +0 -0
  452. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_pointdensity/points.png +0 -0
  453. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_polygon/aesthetics.png +0 -0
  454. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_polygon/no_fill.png +0 -0
  455. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_qq_qq_line/normal.png +0 -0
  456. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_qq_qq_line/normal_with_line.png +0 -0
  457. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_quantile/lines.png +0 -0
  458. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_raster/gap_no_interpolation.png +0 -0
  459. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_raster/gap_with_interpolation.png +0 -0
  460. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_raster/rectangle.png +0 -0
  461. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_raster/square.png +0 -0
  462. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_rect_tile/coord-trans-groups.png +0 -0
  463. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_rect_tile/coord-trans.png +0 -0
  464. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_rect_tile/infinite-rects.png +0 -0
  465. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_rect_tile/rect-aesthetics.png +0 -0
  466. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_rect_tile/rect-nofill.png +0 -0
  467. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_rect_tile/tile-aesthetics.png +0 -0
  468. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_ribbon_area/area_aesthetics.png +0 -0
  469. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_aesthetics.png +0 -0
  470. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_coord_flip.png +0 -0
  471. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_facetting.png +0 -0
  472. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type.png +0 -0
  473. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type_coord_flip.png +0 -0
  474. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_where.png +0 -0
  475. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_rug/aesthetics.png +0 -0
  476. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_rug/coord_flip.png +0 -0
  477. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_segment/aesthetics.png +0 -0
  478. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_segment/arrow.png +0 -0
  479. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_segment/arrow_coord_flip.png +0 -0
  480. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_sina/method_counts.png +0 -0
  481. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_sina/scale_area+coord_flip.png +0 -0
  482. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_sina/scale_area.png +0 -0
  483. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_sina/scale_count.png +0 -0
  484. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_sina/style.png +0 -0
  485. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/continuous_x.png +0 -0
  486. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/continuous_x_fullrange.png +0 -0
  487. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/coord_trans_se_false.png +0 -0
  488. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/discrete_x.png +0 -0
  489. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/discrete_x_fullrange.png +0 -0
  490. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/glm_formula.png +0 -0
  491. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/gls_formula.png +0 -0
  492. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/init_and_fit_kwargs.png +0 -0
  493. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/legend_fill_ratio.png +0 -0
  494. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/linear_smooth.png +0 -0
  495. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/linear_smooth_no_ci.png +0 -0
  496. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/lm_formula.png +0 -0
  497. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/lm_formula_weights.png +0 -0
  498. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/non_linear_smooth.png +0 -0
  499. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/non_linear_smooth_no_ci.png +0 -0
  500. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/rlm_formula.png +0 -0
  501. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_smooth/sorts_by_x.png +0 -0
  502. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_spoke/aesthetics.png +0 -0
  503. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_spoke/test_unmapped_angle.png +0 -0
  504. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_text_label/adjust_label.png +0 -0
  505. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_text_label/adjust_text.png +0 -0
  506. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_text_label/adjust_text_default_color.png +0 -0
  507. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_text_label/format_missing_values.png +0 -0
  508. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_text_label/label_aesthetics.png +0 -0
  509. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_text_label/text_aesthetics.png +0 -0
  510. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/aesthetics+coord_flip.png +0 -0
  511. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/aesthetics.png +0 -0
  512. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/no_trim.png +0 -0
  513. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/overlap.png +0 -0
  514. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/quantiles_width_dodge.png +0 -0
  515. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/scale.png +0 -0
  516. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/scales_free.png +0 -0
  517. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/style.png +0 -0
  518. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_violin/style_alternating.png +0 -0
  519. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_geom_vline/aesthetics.png +0 -0
  520. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_ggplot_internals/after_scale_mapping.png +0 -0
  521. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_ggplot_internals/to_pandas.png +0 -0
  522. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_guide_internals/guide_legend_after_scale.png +0 -0
  523. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layers/inserting_layers.png +0 -0
  524. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/default_tag_location.png +0 -0
  525. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/inside_legend_90pct_top_right.png +0 -0
  526. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/inside_legend_left.png +0 -0
  527. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/inside_legend_top.png +0 -0
  528. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/inside_legend_top_right.png +0 -0
  529. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/justification_with_blank_title_and_text.png +0 -0
  530. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/margin_bottom.png +0 -0
  531. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/outside_legend_bottom_left.png +0 -0
  532. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/outside_legend_left_top.png +0 -0
  533. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/outside_legend_right_bottom.png +0 -0
  534. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/outside_legend_top_right.png +0 -0
  535. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/panel_bottomleft.png +0 -0
  536. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/panel_topleft_margin_in_fig.png +0 -0
  537. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt.png +0 -0
  538. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt_ar1.png +0 -0
  539. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/panel_xycoords.png +0 -0
  540. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/plot_margin_aspect_ratio.png +0 -0
  541. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/plot_margin_protruding_axis_text.png +0 -0
  542. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/plot_topright.png +0 -0
  543. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/plot_topright_margin_in_fig.png +0 -0
  544. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/plot_topright_margin_in_pt.png +0 -0
  545. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_layout/plot_xycoords.png +0 -0
  546. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/add_into_ncol.png +0 -0
  547. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/add_into_stack.png +0 -0
  548. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/and_operator.png +0 -0
  549. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/basic_horizontal_align_resize.png +0 -0
  550. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/basic_vertical_align_resize.png +0 -0
  551. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/complex_composition.png +0 -0
  552. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/facets.png +0 -0
  553. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/minus.png +0 -0
  554. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/mul_operator.png +0 -0
  555. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/nested_horizontal_align_resize.png +0 -0
  556. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/nested_vertical_align_resize.png +0 -0
  557. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_annotation_addition.png +0 -0
  558. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_annotation_position_panel.png +0 -0
  559. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_annotation_position_plot.png +0 -0
  560. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_association.png +0 -0
  561. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_byrow.png +0 -0
  562. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_extra_col_width.png +0 -0
  563. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_extra_cols.png +0 -0
  564. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_extra_row_width.png +0 -0
  565. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_extra_rows.png +0 -0
  566. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_heights.png +0 -0
  567. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_nested_resize.png +0 -0
  568. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plot_layout_widths.png +0 -0
  569. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/plus_operator.png +0 -0
  570. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/test_nested_horizontal_align_1.png +0 -0
  571. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/test_nested_horizontal_align_2.png +0 -0
  572. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/test_nested_vertical_align_1.png +0 -0
  573. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/test_nested_vertical_align_2.png +0 -0
  574. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/vertical_tag_align.png +0 -0
  575. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_plot_composition/wrap_complicated.png +0 -0
  576. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/dodge.png +0 -0
  577. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/dodge2.png +0 -0
  578. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/dodge2_preserve_single_interval.png +0 -0
  579. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/dodge2_varwidth.png +0 -0
  580. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/dodge_preserve_single.png +0 -0
  581. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/dodge_preserve_single_text.png +0 -0
  582. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/dodge_segment.png +0 -0
  583. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/fill.png +0 -0
  584. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/jitter.png +0 -0
  585. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/jitterdodge.png +0 -0
  586. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/nudge.png +0 -0
  587. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/stack-negative.png +0 -0
  588. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/stack-non-linear-scale.png +0 -0
  589. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_position/stack.png +0 -0
  590. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/arrays.png +0 -0
  591. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/multiple_geoms.png +0 -0
  592. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/onlyx.png +0 -0
  593. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/onlyy.png +0 -0
  594. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/range.png +0 -0
  595. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/sample.png +0 -0
  596. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/scalars.png +0 -0
  597. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/series_labelling.png +0 -0
  598. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/string-arrays.png +0 -0
  599. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/xlim.png +0 -0
  600. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_qplot/ylim.png +0 -0
  601. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/bool_mapping.png +0 -0
  602. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/breaks_and_labels_outside_of_limits.png +0 -0
  603. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/datetime_scale_expansion.png +0 -0
  604. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/datetime_scale_limits.png +0 -0
  605. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/discrete_xy_scale_drop_limits.png +0 -0
  606. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/expand_limits.png +0 -0
  607. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_added_scales.png +0 -0
  608. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_1.png +0 -0
  609. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_2.png +0 -0
  610. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_1.png +0 -0
  611. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_2.png +0 -0
  612. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_mixed_scope_aesthetics.png +0 -0
  613. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/missing_data_discrete_scale.png +0 -0
  614. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/missing_manual_dict_aesthetic.png +0 -0
  615. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/multiple_aesthetics.png +0 -0
  616. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/ordinal_scale.png +0 -0
  617. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/test_legend_ordering_with_identity_scale.png +0 -0
  618. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/transform_aes_defaults_and_params.png +0 -0
  619. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_internals/transform_datetime_aes_param.png +0 -0
  620. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_labelling/caption_simple.png +0 -0
  621. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_labelling/labelling_with_colour.png +0 -0
  622. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_strings.png +0 -0
  623. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_tuples.png +0 -0
  624. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_scale_symlog/scale_y_symlog.png +0 -0
  625. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_ecdf/computed_y_column.png +0 -0
  626. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_ecdf/ecdf.png +0 -0
  627. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_ecdf/ecdf_no_pad.png +0 -0
  628. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_ellipse/ellipse.png +0 -0
  629. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_function/args.png +0 -0
  630. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_function/limits.png +0 -0
  631. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_hull/hull.png +0 -0
  632. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary/fun_args.png +0 -0
  633. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary/mean_cl_boot.png +0 -0
  634. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary/mean_cl_normal.png +0 -0
  635. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary/mean_sdl.png +0 -0
  636. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary/mean_se.png +0 -0
  637. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary/median_hilow.png +0 -0
  638. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary/summary_functions.png +0 -0
  639. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary_bin/continuous_x.png +0 -0
  640. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary_bin/discrete_x.png +0 -0
  641. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_stat_summary_bin/setting_binwidth.png +0 -0
  642. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/axis_ticks_and_length.png +0 -0
  643. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/element_text_with_sequence_values.png +0 -0
  644. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/guide_colorbar_text_sequence.png +0 -0
  645. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/no_ticks.png +0 -0
  646. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/override_axis_text.png +0 -0
  647. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/test_guide_colorbar_sequence_ha_va.png +0 -0
  648. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_538.png +0 -0
  649. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_bw.png +0 -0
  650. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_classic.png +0 -0
  651. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_dark.png +0 -0
  652. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_gray.png +0 -0
  653. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_light.png +0 -0
  654. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_linedraw.png +0 -0
  655. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_matplotlib.png +0 -0
  656. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_minimal.png +0 -0
  657. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_seaborn.png +0 -0
  658. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_tufte.png +0 -0
  659. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_void.png +0 -0
  660. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_xkcd.png +0 -0
  661. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_theme/theme_xkcd_ci.png +0 -0
  662. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/baseline_images/test_watermark/watermark.png +0 -0
  663. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/images/plotnine-watermark.png +0 -0
  664. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_aes.py +0 -0
  665. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_animation.py +0 -0
  666. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_annotate.py +0 -0
  667. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_annotation_logticks.py +0 -0
  668. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_annotation_stripes.py +0 -0
  669. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_binning.py +0 -0
  670. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_coords.py +0 -0
  671. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_doctools.py +0 -0
  672. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_facet_labelling.py +0 -0
  673. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_facets.py +0 -0
  674. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom.py +0 -0
  675. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_abline.py +0 -0
  676. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_blank.py +0 -0
  677. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_boxplot.py +0 -0
  678. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_count.py +0 -0
  679. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_crossbar.py +0 -0
  680. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_density.py +0 -0
  681. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_density_2d.py +0 -0
  682. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_dotplot.py +0 -0
  683. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_errorbar_errorbarh.py +0 -0
  684. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_freqpoly.py +0 -0
  685. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_hline.py +0 -0
  686. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_linerange_pointrange.py +0 -0
  687. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_map.py +0 -0
  688. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_path_line_step.py +0 -0
  689. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_point.py +0 -0
  690. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_pointdensity.py +0 -0
  691. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_polygon.py +0 -0
  692. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_qq_qq_line.py +0 -0
  693. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_quantile.py +0 -0
  694. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_raster.py +0 -0
  695. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_rect_tile.py +0 -0
  696. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_ribbon_area.py +0 -0
  697. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_rug.py +0 -0
  698. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_segment.py +0 -0
  699. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_sina.py +0 -0
  700. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_smooth.py +0 -0
  701. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_spoke.py +0 -0
  702. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_text_label.py +0 -0
  703. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_violin.py +0 -0
  704. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_geom_vline.py +0 -0
  705. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_ggplot_internals.py +0 -0
  706. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_ggsave.py +0 -0
  707. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_helpers.py +0 -0
  708. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_layers.py +0 -0
  709. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_lint_and_format.py +0 -0
  710. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_position.py +0 -0
  711. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_qplot.py +0 -0
  712. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_save_as_pdf_pages.py +0 -0
  713. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_scale_labelling.py +0 -0
  714. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_scale_linetype.py +0 -0
  715. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_scale_symlog.py +0 -0
  716. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_stat.py +0 -0
  717. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_stat_calculate_methods.py +0 -0
  718. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_stat_ecdf.py +0 -0
  719. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_stat_ellipse.py +0 -0
  720. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_stat_function.py +0 -0
  721. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_stat_hull.py +0 -0
  722. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_stat_summary.py +0 -0
  723. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_stat_summary_bin.py +0 -0
  724. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_theme.py +0 -0
  725. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_utils.py +0 -0
  726. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tests/test_watermark.py +0 -0
  727. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tools/release-checklist-tpl.md +0 -0
  728. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tools/release-checklist.py +0 -0
  729. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tools/term.py +0 -0
  730. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tools/update_baseline_images.py +0 -0
  731. {plotnine-0.16.0a2 → plotnine-0.16.0a4}/tools/visualize_tests.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plotnine
3
- Version: 0.16.0a2
3
+ Version: 0.16.0a4
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.5
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"
@@ -68,8 +68,9 @@ Requires-Dist: pyarrow>=19.0.1; extra == "extra"
68
68
  Provides-Extra: doc
69
69
  Requires-Dist: jupyter; extra == "doc"
70
70
  Requires-Dist: click; extra == "doc"
71
+ Requires-Dist: griffe==1.15.0; extra == "doc"
71
72
  Requires-Dist: numpydoc>=0.9.1; extra == "doc"
72
- Requires-Dist: quartodoc>=0.7.2; extra == "doc"
73
+ Requires-Dist: quartodoc>=0.11.1; extra == "doc"
73
74
  Provides-Extra: lint
74
75
  Requires-Dist: ruff; extra == "lint"
75
76
  Provides-Extra: test
@@ -251,12 +252,5 @@ Testing
251
252
  -------
252
253
 
253
254
  Plotnine has tests that generate images which are compared to baseline images known
254
- to be correct. To generate images that are consistent across all systems you have
255
- to install matplotlib from source. You can do that with ``pip`` using the command.
256
-
257
- ```console
258
- $ pip install matplotlib --no-binary matplotlib
259
- ```
260
-
261
- Otherwise there may be small differences in the text rendering that throw off the
262
- image comparisons.
255
+ to be correct. There may be small differences in the text rendering that throw off the
256
+ image comparisons, and the tests allow some very small differences.
@@ -162,12 +162,5 @@ Testing
162
162
  -------
163
163
 
164
164
  Plotnine has tests that generate images which are compared to baseline images known
165
- to be correct. To generate images that are consistent across all systems you have
166
- to install matplotlib from source. You can do that with ``pip`` using the command.
167
-
168
- ```console
169
- $ pip install matplotlib --no-binary matplotlib
170
- ```
171
-
172
- Otherwise there may be small differences in the text rendering that throw off the
173
- image comparisons.
165
+ to be correct. There may be small differences in the text rendering that throw off the
166
+ image comparisons, and the tests allow some very small differences.
@@ -477,6 +477,10 @@ quartodoc:
477
477
  - plot_background
478
478
  - plot_caption
479
479
  - plot_caption_position
480
+ - plot_footer
481
+ - plot_footer_background
482
+ - plot_footer_line
483
+ - plot_footer_position
480
484
  - plot_margin
481
485
  - plot_margin_bottom
482
486
  - plot_margin_left
@@ -582,6 +586,10 @@ quartodoc:
582
586
  contents:
583
587
  - get_aesthetic_limits
584
588
 
589
+ - package: plotnine.session
590
+ contents:
591
+ - last_plot
592
+
585
593
  - title: Datasets
586
594
  desc: |
587
595
  These datasets ship with the plotnine and you can import them with
@@ -19,12 +19,48 @@ 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
+ ### Enhancements
52
+
53
+ - Increased the default linespacing used by themes from `0.9` to `1.2`.
54
+ This gives multiline titles, subtitles and captions a better balance between looking compact and looking crumpled.
55
+
56
+ ## v0.15.3
57
+ (2025-01-28)
58
+
59
+ ### Enhancements
60
+
61
+ - Removed warnings about copy-on-write for pandas >= 3.0.0
62
+
63
+
28
64
  ## v0.15.2
29
65
  (2025-12-12)
30
66
 
@@ -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
  """
@@ -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
- # TODO: Remove this context when copy-on-write is permanent, i.e.
59
- # pandas >= 3.0
60
- self.pd_option_context = pd.option_context(
61
- "mode.copy_on_write",
62
- True,
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
- self.pd_option_context.__enter__()
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
- self.pd_option_context.__exit__(exc_type, exc_value, exc_traceback)
95
+ if PANDAS_LT_3:
96
+ self.pd_option_context.__exit__(exc_type, exc_value, exc_traceback)
93
97
 
94
98
 
95
99
  @dataclass
@@ -18,6 +18,7 @@ from ..composition._plot_annotation import plot_annotation
18
18
  from ..composition._plot_layout import plot_layout
19
19
  from ..composition._types import ComposeAddable
20
20
  from ..options import get_option
21
+ from ..session import set_last_plot
21
22
 
22
23
  if TYPE_CHECKING:
23
24
  from pathlib import Path
@@ -123,6 +124,8 @@ class Compose:
123
124
  | ------------- |
124
125
  | |
125
126
  | caption |
127
+ |-------------------|
128
+ | footer |
126
129
  -------------------
127
130
  """
128
131
  _sidespaces: CompositionSideSpaces
@@ -557,6 +560,7 @@ class Compose:
557
560
  self.theme.apply()
558
561
  figure.set_layout_engine(PlotnineLayoutEngine(self))
559
562
 
563
+ set_last_plot(self)
560
564
  return figure
561
565
 
562
566
  def _draw_plots(self):
@@ -573,13 +577,28 @@ class Compose:
573
577
  """
574
578
  Draw the background rectangle of the composition
575
579
  """
580
+ from matplotlib.lines import Line2D
576
581
  from matplotlib.patches import Rectangle
577
582
 
578
- rect = Rectangle((0, 0), 0, 0, facecolor="none", zorder=-1000)
583
+ zorder = -1000
584
+ rect = Rectangle((0, 0), 0, 0, facecolor="none", zorder=zorder)
579
585
  self.figure.add_artist(rect)
580
586
  self._gridspec.patch = rect
581
587
  self.theme.targets.plot_background = rect
582
588
 
589
+ if self.annotation.footer:
590
+ rect = Rectangle(
591
+ (0, 0), 0, 0, facecolor="none", linewidth=0, zorder=zorder + 1
592
+ )
593
+ self.figure.add_artist(rect)
594
+ self.theme.targets.plot_footer_background = rect
595
+
596
+ line = Line2D(
597
+ [0, 0], [0, 0], color="none", linewidth=0, zorder=zorder + 2
598
+ )
599
+ self.figure.add_artist(line)
600
+ self.theme.targets.plot_footer_line = line
601
+
583
602
  def _draw_annotation(self):
584
603
  """
585
604
  Draw the items in the annotation
@@ -602,6 +621,9 @@ class Compose:
602
621
  if caption := self.annotation.caption:
603
622
  targets.plot_caption = figure.text(0, 0, caption)
604
623
 
624
+ if footer := self.annotation.footer:
625
+ targets.plot_footer = figure.text(0, 0, footer)
626
+
605
627
  def save(
606
628
  self,
607
629
  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 to use for the plot title, subtitle, caption, margin and background
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
@@ -42,11 +42,13 @@ from .layer import Layers
42
42
  from .mapping.aes import aes
43
43
  from .options import get_option
44
44
  from .scales.scales import Scales
45
+ from .session import set_last_plot
45
46
  from .themes.theme import theme, theme_get
46
47
 
47
48
  if TYPE_CHECKING:
48
49
  from typing import Protocol
49
50
 
51
+ import pandas as pd
50
52
  from matplotlib.axes import Axes
51
53
  from matplotlib.figure import Figure
52
54
  from typing_extensions import Self
@@ -127,6 +129,8 @@ class ggplot:
127
129
  | axis_text |
128
130
  | axis_title |
129
131
  | caption |
132
+ |-------------------------|
133
+ | footer |
130
134
  -------------------------
131
135
  """
132
136
 
@@ -372,6 +376,7 @@ class ggplot:
372
376
  self.theme.apply()
373
377
  figure.set_layout_engine(PlotnineLayoutEngine(self))
374
378
 
379
+ set_last_plot(self)
375
380
  return figure
376
381
 
377
382
  def _setup(self) -> Figure:
@@ -553,6 +558,7 @@ class ggplot:
553
558
  subtitle = self.labels.get("subtitle", "")
554
559
  caption = self.labels.get("caption", "")
555
560
  tag = self.labels.get("tag", "")
561
+ footer = self.labels.get("footer", "")
556
562
 
557
563
  # Get the axis labels (default or specified by user)
558
564
  # and let the coordinate modify them e.g. flip
@@ -570,6 +576,9 @@ class ggplot:
570
576
  if caption:
571
577
  targets.plot_caption = figure.text(0, 0, caption)
572
578
 
579
+ if footer:
580
+ targets.plot_footer = figure.text(0, 0, footer)
581
+
573
582
  if tag:
574
583
  targets.plot_tag = figure.text(0, 0, tag)
575
584
 
@@ -587,13 +596,30 @@ class ggplot:
587
596
  wm.draw(self.figure)
588
597
 
589
598
  def _draw_plot_background(self):
599
+ from matplotlib.lines import Line2D
590
600
  from matplotlib.patches import Rectangle
591
601
 
592
- rect = Rectangle((0, 0), 0, 0, facecolor="none", zorder=-1000)
602
+ zorder = -1000
603
+ rect = Rectangle((0, 0), 0, 0, facecolor="none", zorder=zorder)
593
604
  self.figure.add_artist(rect)
594
605
  self._gridspec.patch = rect
595
606
  self.theme.targets.plot_background = rect
596
607
 
608
+ # Footer background and line only if there is a footer, and put
609
+ # it on top of the plot background
610
+ if self.labels.get("footer", ""):
611
+ rect = Rectangle(
612
+ (0, 0), 0, 0, facecolor="none", linewidth=0, zorder=zorder + 1
613
+ )
614
+ self.figure.add_artist(rect)
615
+ self.theme.targets.plot_footer_background = rect
616
+
617
+ line = Line2D(
618
+ [0, 0], [0, 0], color="none", linewidth=0, zorder=zorder + 2
619
+ )
620
+ self.figure.add_artist(line)
621
+ self.theme.targets.plot_footer_line = line
622
+
597
623
  def _save_filename(self, ext: str) -> Path:
598
624
  """
599
625
  Make a filename for use by the save method
@@ -748,6 +774,25 @@ class ggplot:
748
774
  with plot_context(self).rc_context:
749
775
  sv.figure.savefig(**sv.kwargs)
750
776
 
777
+ def layer_data(self, i: int = 0) -> pd.DataFrame:
778
+ """
779
+ Return the data used to draw a specific plot layer
780
+
781
+ Parameters
782
+ ----------
783
+ i :
784
+ Index of the layer to retrieve, starting from 0.
785
+
786
+ Returns
787
+ -------
788
+ pd.DataFrame
789
+ Data used by the specified layer after all transformations,
790
+ statistics, and position adjustments have been applied.
791
+ """
792
+ p = deepcopy(self)
793
+ p._build()
794
+ return p.layers.data[i]
795
+
751
796
 
752
797
  ggsave = ggplot.save
753
798
 
@@ -272,9 +272,12 @@ class guide_legend(guide):
272
272
  # Drawings
273
273
  drawings: list[ColoredDrawingArea] = []
274
274
  for i in range(nbreak):
275
- da = ColoredDrawingArea(
276
- elements.key_widths[i], elements.key_heights[i], 0, 0
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 & title) for the plot
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):