plotnine 0.15.0a3__tar.gz → 0.15.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 (667) hide show
  1. {plotnine-0.15.0a3/plotnine.egg-info → plotnine-0.15.0a4}/PKG-INFO +2 -2
  2. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/_renderer.py +0 -3
  3. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/changelog.qmd +10 -0
  4. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_utils/__init__.py +5 -103
  5. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/doctools.py +3 -3
  6. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/annotate.py +10 -10
  7. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom.py +25 -16
  8. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/layer.py +2 -0
  9. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/mapping/aes.py +75 -45
  10. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_continuous.py +1 -1
  11. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_discrete.py +1 -1
  12. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_density_2d.py +1 -1
  13. {plotnine-0.15.0a3 → plotnine-0.15.0a4/plotnine.egg-info}/PKG-INFO +2 -2
  14. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine.egg-info/SOURCES.txt +2 -0
  15. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine.egg-info/requires.txt +1 -1
  16. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/pyproject.toml +1 -1
  17. plotnine-0.15.0a4/tests/baseline_images/test_aes/irregular_shapes.png +0 -0
  18. plotnine-0.15.0a4/tests/baseline_images/test_annotate/annotate_faceting.png +0 -0
  19. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_aes.py +32 -0
  20. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_annotate.py +28 -1
  21. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_ggplot_internals.py +22 -19
  22. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.gitattributes +0 -0
  23. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.github/DISCUSSION_TEMPLATE/2024-plotnine-contest.yml +0 -0
  24. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.github/utils/_repo.py +0 -0
  25. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.github/utils/please.py +0 -0
  26. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.github/workflows/documentation.yml +0 -0
  27. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.github/workflows/release.yml +0 -0
  28. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.github/workflows/testing.yml +0 -0
  29. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.github/workflows/weekly.yml +0 -0
  30. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.gitignore +0 -0
  31. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.pre-commit-config.yaml +0 -0
  32. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/.readthedocs.yaml +0 -0
  33. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/CITATION.bib +0 -0
  34. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/LICENSE +0 -0
  35. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/Makefile +0 -0
  36. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/README.md +0 -0
  37. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/code-of-conduct.md +0 -0
  38. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/codecov.yml +0 -0
  39. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/.gitignore +0 -0
  40. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/Makefile +0 -0
  41. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/_config.py +0 -0
  42. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/_quarto.yml +0 -0
  43. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/_quartodoc.yml +0 -0
  44. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/favicon-16x16.png +0 -0
  45. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/favicon-32x32.png +0 -0
  46. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/logo-512.png +0 -0
  47. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/logo.png +0 -0
  48. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/readme-image-1.png +0 -0
  49. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/readme-image-2.png +0 -0
  50. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/readme-image-3.png +0 -0
  51. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/readme-image-4.png +0 -0
  52. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/readme-image-5.png +0 -0
  53. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/readme-image-5alt.png +0 -0
  54. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/images/readme_images.py +0 -0
  55. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/doc/plotnine.scss +0 -0
  56. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/licences/SEABORN_LICENSE +0 -0
  57. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/__init__.py +0 -0
  58. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/__init__.py +0 -0
  59. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/gridspec.py +0 -0
  60. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/layout_manager/__init__.py +0 -0
  61. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/layout_manager/_engine.py +0 -0
  62. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/layout_manager/_layout_items.py +0 -0
  63. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/layout_manager/_layout_tree.py +0 -0
  64. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/layout_manager/_spaces.py +0 -0
  65. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/offsetbox.py +0 -0
  66. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/patches.py +0 -0
  67. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/text.py +0 -0
  68. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/ticker.py +0 -0
  69. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/transforms.py +0 -0
  70. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_mpl/utils.py +0 -0
  71. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_utils/context.py +0 -0
  72. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_utils/dev.py +0 -0
  73. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_utils/ipython.py +0 -0
  74. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_utils/quarto.py +0 -0
  75. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_utils/registry.py +0 -0
  76. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/_utils/yippie.py +0 -0
  77. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/animation.py +0 -0
  78. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/coords/__init__.py +0 -0
  79. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/coords/coord.py +0 -0
  80. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/coords/coord_cartesian.py +0 -0
  81. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/coords/coord_fixed.py +0 -0
  82. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/coords/coord_flip.py +0 -0
  83. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/coords/coord_trans.py +0 -0
  84. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/__init__.py +0 -0
  85. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/anscombe-quartet.csv +0 -0
  86. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/diamonds.csv +0 -0
  87. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/economics.csv +0 -0
  88. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/economics_long.csv +0 -0
  89. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/faithful.csv +0 -0
  90. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/faithfuld.csv +0 -0
  91. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/huron.csv +0 -0
  92. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/luv_colours.csv +0 -0
  93. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/meat.csv +0 -0
  94. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/midwest.csv +0 -0
  95. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/mpg.csv +0 -0
  96. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/msleep.csv +0 -0
  97. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/mtcars.csv +0 -0
  98. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/pageviews.csv +0 -0
  99. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/penguins.csv +0 -0
  100. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/presidential.csv +0 -0
  101. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/seals.csv +0 -0
  102. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/data/txhousing.csv +0 -0
  103. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/exceptions.py +0 -0
  104. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/facets/__init__.py +0 -0
  105. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/facets/facet.py +0 -0
  106. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/facets/facet_grid.py +0 -0
  107. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/facets/facet_null.py +0 -0
  108. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/facets/facet_wrap.py +0 -0
  109. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/facets/labelling.py +0 -0
  110. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/facets/layout.py +0 -0
  111. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/facets/strips.py +0 -0
  112. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/__init__.py +0 -0
  113. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/annotation_logticks.py +0 -0
  114. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/annotation_stripes.py +0 -0
  115. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_abline.py +0 -0
  116. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_area.py +0 -0
  117. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_bar.py +0 -0
  118. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_bin_2d.py +0 -0
  119. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_blank.py +0 -0
  120. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_boxplot.py +0 -0
  121. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_col.py +0 -0
  122. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_count.py +0 -0
  123. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_crossbar.py +0 -0
  124. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_density.py +0 -0
  125. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_density_2d.py +0 -0
  126. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_dotplot.py +0 -0
  127. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_errorbar.py +0 -0
  128. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_errorbarh.py +0 -0
  129. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_freqpoly.py +0 -0
  130. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_histogram.py +0 -0
  131. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_hline.py +0 -0
  132. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_jitter.py +0 -0
  133. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_label.py +0 -0
  134. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_line.py +0 -0
  135. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_linerange.py +0 -0
  136. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_map.py +0 -0
  137. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_path.py +0 -0
  138. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_point.py +0 -0
  139. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_pointdensity.py +0 -0
  140. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_pointrange.py +0 -0
  141. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_polygon.py +0 -0
  142. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_qq.py +0 -0
  143. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_qq_line.py +0 -0
  144. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_quantile.py +0 -0
  145. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_raster.py +0 -0
  146. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_rect.py +0 -0
  147. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_ribbon.py +0 -0
  148. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_rug.py +0 -0
  149. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_segment.py +0 -0
  150. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_sina.py +0 -0
  151. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_smooth.py +0 -0
  152. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_spoke.py +0 -0
  153. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_step.py +0 -0
  154. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_text.py +0 -0
  155. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_tile.py +0 -0
  156. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_violin.py +0 -0
  157. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/geoms/geom_vline.py +0 -0
  158. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/ggplot.py +0 -0
  159. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/guides/__init__.py +0 -0
  160. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/guides/guide.py +0 -0
  161. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/guides/guide_axis.py +0 -0
  162. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/guides/guide_colorbar.py +0 -0
  163. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/guides/guide_legend.py +0 -0
  164. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/guides/guides.py +0 -0
  165. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/helpers.py +0 -0
  166. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/iapi.py +0 -0
  167. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/labels.py +0 -0
  168. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/mapping/__init__.py +0 -0
  169. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/mapping/_env.py +0 -0
  170. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/mapping/_eval_environment.py +0 -0
  171. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/mapping/evaluation.py +0 -0
  172. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/options.py +0 -0
  173. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/plot_composition/__init__.py +0 -0
  174. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/plot_composition/_compose.py +0 -0
  175. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/plot_composition/_plotspec.py +0 -0
  176. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/plot_composition/_spacer.py +0 -0
  177. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/__init__.py +0 -0
  178. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position.py +0 -0
  179. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position_dodge.py +0 -0
  180. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position_dodge2.py +0 -0
  181. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position_fill.py +0 -0
  182. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position_identity.py +0 -0
  183. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position_jitter.py +0 -0
  184. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position_jitterdodge.py +0 -0
  185. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position_nudge.py +0 -0
  186. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/positions/position_stack.py +0 -0
  187. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/py.typed +0 -0
  188. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/qplot.py +0 -0
  189. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/__init__.py +0 -0
  190. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/_expand.py +0 -0
  191. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/_runtime_typing.py +0 -0
  192. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/limits.py +0 -0
  193. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/range.py +0 -0
  194. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale.py +0 -0
  195. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_alpha.py +0 -0
  196. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_color.py +0 -0
  197. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_datetime.py +0 -0
  198. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_identity.py +0 -0
  199. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_linetype.py +0 -0
  200. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_manual.py +0 -0
  201. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_shape.py +0 -0
  202. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_size.py +0 -0
  203. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_stroke.py +0 -0
  204. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scale_xy.py +0 -0
  205. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/scales/scales.py +0 -0
  206. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/__init__.py +0 -0
  207. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/binning.py +0 -0
  208. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/density.py +0 -0
  209. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/distributions.py +0 -0
  210. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/smoothers.py +0 -0
  211. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat.py +0 -0
  212. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_bin.py +0 -0
  213. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_bin_2d.py +0 -0
  214. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_bindot.py +0 -0
  215. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_boxplot.py +0 -0
  216. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_count.py +0 -0
  217. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_density.py +0 -0
  218. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_ecdf.py +0 -0
  219. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_ellipse.py +0 -0
  220. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_function.py +0 -0
  221. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_hull.py +0 -0
  222. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_identity.py +0 -0
  223. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_pointdensity.py +0 -0
  224. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_qq.py +0 -0
  225. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_qq_line.py +0 -0
  226. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_quantile.py +0 -0
  227. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_sina.py +0 -0
  228. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_smooth.py +0 -0
  229. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_sum.py +0 -0
  230. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_summary.py +0 -0
  231. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_summary_bin.py +0 -0
  232. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_unique.py +0 -0
  233. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/stats/stat_ydensity.py +0 -0
  234. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/__init__.py +0 -0
  235. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/elements/__init__.py +0 -0
  236. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/elements/element_base.py +0 -0
  237. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/elements/element_blank.py +0 -0
  238. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/elements/element_line.py +0 -0
  239. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/elements/element_rect.py +0 -0
  240. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/elements/element_text.py +0 -0
  241. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/elements/margin.py +0 -0
  242. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/seaborn_rcmod.py +0 -0
  243. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/targets.py +0 -0
  244. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme.py +0 -0
  245. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_538.py +0 -0
  246. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_bw.py +0 -0
  247. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_classic.py +0 -0
  248. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_dark.py +0 -0
  249. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_gray.py +0 -0
  250. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_light.py +0 -0
  251. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_linedraw.py +0 -0
  252. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_matplotlib.py +0 -0
  253. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_minimal.py +0 -0
  254. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_seaborn.py +0 -0
  255. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_tufte.py +0 -0
  256. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_void.py +0 -0
  257. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/theme_xkcd.py +0 -0
  258. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/themes/themeable.py +0 -0
  259. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/typing.py +0 -0
  260. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine/watermark.py +0 -0
  261. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine.egg-info/dependency_links.txt +0 -0
  262. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/plotnine.egg-info/top_level.txt +0 -0
  263. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/requirements/doc.txt +0 -0
  264. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/setup.cfg +0 -0
  265. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_aes/geom_crossbar.png +0 -0
  266. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_aes/reorder.png +0 -0
  267. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_aes/reorder_index.png +0 -0
  268. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_aes/stat_bin_2d.png +0 -0
  269. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_aes/stat_ecdf.png +0 -0
  270. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_aes/test_stat_function.png +0 -0
  271. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotate/multiple_annotation_geoms.png +0 -0
  272. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks.png +0 -0
  273. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_5.png +0 -0
  274. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_8.png +0 -0
  275. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip.png +0 -0
  276. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete.png +0 -0
  277. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete_bottom.png +0 -0
  278. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_logticks/annotation_logticks_faceting.png +0 -0
  279. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes.png +0 -0
  280. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_continuous_scale.png +0 -0
  281. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_coord_flip.png +0 -0
  282. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_faceting.png +0 -0
  283. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_direction_extend.png +0 -0
  284. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range.png +0 -0
  285. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range_cycle.png +0 -0
  286. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_annotation_stripes/annotation_stripes_single_stripe.png +0 -0
  287. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_coords/coord_fixed.png +0 -0
  288. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_coords/coord_flip.png +0 -0
  289. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_coords/coord_trans.png +0 -0
  290. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_coords/coord_trans_backtransform.png +0 -0
  291. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_coords/coord_trans_reverse.png +0 -0
  292. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_coords/datetime_scale_limits.png +0 -0
  293. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/aslabeller_dict_0tag.png +0 -0
  294. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/aslabeller_func_hashtagit.png +0 -0
  295. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/label_both.png +0 -0
  296. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/label_context.png +0 -0
  297. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/label_context_wrap2vars.png +0 -0
  298. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/label_value.png +0 -0
  299. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/labeller_cols_both_grid.png +0 -0
  300. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/labeller_cols_both_wrap.png +0 -0
  301. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/labeller_towords.png +0 -0
  302. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facet_labelling/uneven_num_of_lines.png +0 -0
  303. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/array_mapping_and_evaluation.png +0 -0
  304. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/dir_v_ncol.png +0 -0
  305. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_drop_false.png +0 -0
  306. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_expression.png +0 -0
  307. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_formula_only_cols.png +0 -0
  308. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_formula_only_rows.png +0 -0
  309. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_margins.png +0 -0
  310. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_one_by_one_var.png +0 -0
  311. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_scales_free_x.png +0 -0
  312. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_scales_free_y.png +0 -0
  313. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_space_free.png +0 -0
  314. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_grid_space_ratios.png +0 -0
  315. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_wrap_direction_v.png +0 -0
  316. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_wrap_expression.png +0 -0
  317. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_wrap_label_both.png +0 -0
  318. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_wrap_not_as_table.png +0 -0
  319. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_wrap_not_as_table_direction_v.png +0 -0
  320. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_wrap_one_var.png +0 -0
  321. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/facet_wrap_two_vars.png +0 -0
  322. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/manual_mapping_with_lists.png +0 -0
  323. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/non_mapped_facetting.png +0 -0
  324. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_facets/variable_and_annotate.png +0 -0
  325. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_abline/aes_inheritance.png +0 -0
  326. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_abline/aesthetics.png +0 -0
  327. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bar_col_histogram/bar-count.png +0 -0
  328. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bar_col_histogram/col.png +0 -0
  329. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bar_col_histogram/col_just.png +0 -0
  330. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bar_col_histogram/histogram-count.png +0 -0
  331. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bar_col_histogram/histogram_weights.png +0 -0
  332. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bar_col_histogram/stat-count-float.png +0 -0
  333. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bar_col_histogram/stat-count-int.png +0 -0
  334. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bin_2d/drop_false.png +0 -0
  335. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_bin_2d/drop_true.png +0 -0
  336. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_blank/blank.png +0 -0
  337. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_boxplot/aesthetics+coord_flip.png +0 -0
  338. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_boxplot/aesthetics.png +0 -0
  339. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_boxplot/no_outliers.png +0 -0
  340. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_boxplot/params.png +0 -0
  341. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_boxplot/position_nudge.png +0 -0
  342. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_boxplot/weight.png +0 -0
  343. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_count/continuous_x_y.png +0 -0
  344. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_count/discrete_x.png +0 -0
  345. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_count/discrete_y.png +0 -0
  346. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_crossbar/aesthetics.png +0 -0
  347. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density/bounds.png +0 -0
  348. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density/few_datapoints.png +0 -0
  349. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density/gaussian-trimmed.png +0 -0
  350. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density/gaussian.png +0 -0
  351. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density/gaussian_weighted.png +0 -0
  352. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density/triangular.png +0 -0
  353. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density_2d/contours.png +0 -0
  354. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density_2d/points.png +0 -0
  355. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_density_2d/polygon.png +0 -0
  356. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/binaxis_y.png +0 -0
  357. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/dotdensity.png +0 -0
  358. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/group_basic.png +0 -0
  359. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/group_stackgroups.png +0 -0
  360. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/group_stackgroups_binaxis_y.png +0 -0
  361. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/histodot.png +0 -0
  362. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/stackdir_center.png +0 -0
  363. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/stackdir_centerwhole.png +0 -0
  364. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/stackdir_down.png +0 -0
  365. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_dotplot/stackratio.png +0 -0
  366. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbar_aesthetics.png +0 -0
  367. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbarh_aesthetics.png +0 -0
  368. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_freqpoly/midpoint.png +0 -0
  369. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_hline/aesthetics.png +0 -0
  370. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_linerange_pointrange/linerange_aesthetics.png +0 -0
  371. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_linerange_pointrange/pointrange_aesthetics.png +0 -0
  372. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_map/facet_wrap.png +0 -0
  373. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_map/geometries.png +0 -0
  374. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_map/multipoint.png +0 -0
  375. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_map/multipolygon.png +0 -0
  376. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_path_line_step/aesthetics.png +0 -0
  377. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_path_line_step/arrow.png +0 -0
  378. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_path_line_step/arrow_facets.png +0 -0
  379. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_path_line_step/missing_values.png +0 -0
  380. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_path_line_step/no_missing_values.png +0 -0
  381. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_path_line_step/path_line_step.png +0 -0
  382. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_path_line_step/step.png +0 -0
  383. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_path_line_step/step_mid.png +0 -0
  384. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_point/aesthetics.png +0 -0
  385. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_point/color_only_mapping.png +0 -0
  386. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_point/custom_shapes.png +0 -0
  387. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_point/legend_transparency.png +0 -0
  388. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_point/no_fill.png +0 -0
  389. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_point/no_mapping.png +0 -0
  390. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_pointdensity/contours.png +0 -0
  391. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_pointdensity/points.png +0 -0
  392. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_polygon/aesthetics.png +0 -0
  393. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_polygon/no_fill.png +0 -0
  394. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_qq_qq_line/normal.png +0 -0
  395. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_qq_qq_line/normal_with_line.png +0 -0
  396. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_quantile/lines.png +0 -0
  397. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_raster/gap_no_interpolation.png +0 -0
  398. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_raster/gap_with_interpolation.png +0 -0
  399. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_raster/rectangle.png +0 -0
  400. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_raster/square.png +0 -0
  401. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_rect_tile/coord-trans-groups.png +0 -0
  402. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_rect_tile/coord-trans.png +0 -0
  403. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_rect_tile/infinite-rects.png +0 -0
  404. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_rect_tile/rect-aesthetics.png +0 -0
  405. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_rect_tile/rect-nofill.png +0 -0
  406. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_rect_tile/tile-aesthetics.png +0 -0
  407. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_ribbon_area/area_aesthetics.png +0 -0
  408. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_aesthetics.png +0 -0
  409. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_coord_flip.png +0 -0
  410. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_facetting.png +0 -0
  411. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type.png +0 -0
  412. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type_coord_flip.png +0 -0
  413. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_ribbon_area/ribbon_where.png +0 -0
  414. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_rug/aesthetics.png +0 -0
  415. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_rug/coord_flip.png +0 -0
  416. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_segment/aesthetics.png +0 -0
  417. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_segment/arrow.png +0 -0
  418. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_sina/method_counts.png +0 -0
  419. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_sina/scale_area+coord_flip.png +0 -0
  420. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_sina/scale_area.png +0 -0
  421. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_sina/scale_count.png +0 -0
  422. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_sina/style.png +0 -0
  423. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/continuous_x.png +0 -0
  424. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/continuous_x_fullrange.png +0 -0
  425. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/coord_trans_se_false.png +0 -0
  426. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/discrete_x.png +0 -0
  427. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/discrete_x_fullrange.png +0 -0
  428. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/glm_formula.png +0 -0
  429. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/gls_formula.png +0 -0
  430. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/init_and_fit_kwargs.png +0 -0
  431. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/legend_fill_ratio.png +0 -0
  432. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/linear_smooth.png +0 -0
  433. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/linear_smooth_no_ci.png +0 -0
  434. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/lm_formula.png +0 -0
  435. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/lm_formula_weights.png +0 -0
  436. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/non_linear_smooth.png +0 -0
  437. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/non_linear_smooth_no_ci.png +0 -0
  438. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/rlm_formula.png +0 -0
  439. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_smooth/sorts_by_x.png +0 -0
  440. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_spoke/aesthetics.png +0 -0
  441. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_spoke/test_unmapped_angle.png +0 -0
  442. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_text_label/adjust_label.png +0 -0
  443. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_text_label/adjust_text.png +0 -0
  444. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_text_label/adjust_text_default_color.png +0 -0
  445. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_text_label/format_missing_values.png +0 -0
  446. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_text_label/label_aesthetics.png +0 -0
  447. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_text_label/text_aesthetics.png +0 -0
  448. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/aesthetics+coord_flip.png +0 -0
  449. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/aesthetics.png +0 -0
  450. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/no_trim.png +0 -0
  451. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/overlap.png +0 -0
  452. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/quantiles_width_dodge.png +0 -0
  453. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/scale.png +0 -0
  454. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/scales_free.png +0 -0
  455. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/style.png +0 -0
  456. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_violin/style_alternating.png +0 -0
  457. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_geom_vline/aesthetics.png +0 -0
  458. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_ggplot_internals/after_scale_mapping.png +0 -0
  459. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_ggplot_internals/to_pandas.png +0 -0
  460. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_guide_internals/guide_legend_after_scale.png +0 -0
  461. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layers/inserting_layers.png +0 -0
  462. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/axis_text_justification.png +0 -0
  463. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/axis_title_x_justification.png +0 -0
  464. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/axis_title_y_justification.png +0 -0
  465. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/colorbar_frame.png +0 -0
  466. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/default.png +0 -0
  467. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/default_tag_location.png +0 -0
  468. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/different_colorbar_themes.png +0 -0
  469. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/facet_grid.png +0 -0
  470. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/facet_wrap.png +0 -0
  471. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/facet_wrap_scales_free.png +0 -0
  472. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/inside_legend_90pct_top_right.png +0 -0
  473. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/inside_legend_left.png +0 -0
  474. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/inside_legend_top.png +0 -0
  475. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/inside_legend_top_right.png +0 -0
  476. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/justification_with_blank_title_and_text.png +0 -0
  477. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/legend_at_the_bottom.png +0 -0
  478. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/legend_at_top.png +0 -0
  479. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/legend_on_the_left.png +0 -0
  480. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/legends_in_different_positions.png +0 -0
  481. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/margin_bottom.png +0 -0
  482. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/outside_legend_bottom_left.png +0 -0
  483. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/outside_legend_left_top.png +0 -0
  484. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/outside_legend_right_bottom.png +0 -0
  485. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/outside_legend_top_right.png +0 -0
  486. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/panel_bottomleft.png +0 -0
  487. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/panel_topleft_margin_in_fig.png +0 -0
  488. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt.png +0 -0
  489. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt_ar1.png +0 -0
  490. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/panel_xycoords.png +0 -0
  491. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/plot_margin_aspect_ratio.png +0 -0
  492. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/plot_margin_protruding_axis_text.png +0 -0
  493. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/plot_title_justification.png +0 -0
  494. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/plot_titles_and_caption_positioning.png +0 -0
  495. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/plot_topright.png +0 -0
  496. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/plot_topright_margin_in_fig.png +0 -0
  497. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/plot_topright_margin_in_pt.png +0 -0
  498. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/plot_xycoords.png +0 -0
  499. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_layout/turn_off_guide.png +0 -0
  500. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_plot_composition/basic_horizontal_align_resize.png +0 -0
  501. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_plot_composition/basic_vertical_align_resize.png +0 -0
  502. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_plot_composition/complex_composition.png +0 -0
  503. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_plot_composition/facets.png +0 -0
  504. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_plot_composition/horizontal_tag_align.png +0 -0
  505. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_plot_composition/nested_horizontal_align_resize.png +0 -0
  506. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_plot_composition/nested_vertical_align_resize.png +0 -0
  507. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_plot_composition/vertical_tag_align.png +0 -0
  508. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/dodge.png +0 -0
  509. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/dodge2.png +0 -0
  510. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/dodge2_preserve_single_interval.png +0 -0
  511. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/dodge2_varwidth.png +0 -0
  512. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/dodge_preserve_single.png +0 -0
  513. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/dodge_preserve_single_text.png +0 -0
  514. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/dodge_segment.png +0 -0
  515. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/fill.png +0 -0
  516. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/jitter.png +0 -0
  517. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/jitterdodge.png +0 -0
  518. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/nudge.png +0 -0
  519. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/stack-negative.png +0 -0
  520. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/stack-non-linear-scale.png +0 -0
  521. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_position/stack.png +0 -0
  522. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/arrays.png +0 -0
  523. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/multiple_geoms.png +0 -0
  524. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/onlyx.png +0 -0
  525. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/onlyy.png +0 -0
  526. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/range.png +0 -0
  527. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/sample.png +0 -0
  528. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/scalars.png +0 -0
  529. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/series_labelling.png +0 -0
  530. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/string-arrays.png +0 -0
  531. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/xlim.png +0 -0
  532. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_qplot/ylim.png +0 -0
  533. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/bool_mapping.png +0 -0
  534. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/breaks_and_labels_outside_of_limits.png +0 -0
  535. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/datetime_scale_expansion.png +0 -0
  536. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/datetime_scale_limits.png +0 -0
  537. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/discrete_xy_scale_drop_limits.png +0 -0
  538. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/expand_limits.png +0 -0
  539. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_added_scales.png +0 -0
  540. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_1.png +0 -0
  541. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_2.png +0 -0
  542. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_1.png +0 -0
  543. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_2.png +0 -0
  544. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/legend_ordering_mixed_scope_aesthetics.png +0 -0
  545. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/missing_data_discrete_position_scale.png +0 -0
  546. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/missing_data_discrete_scale.png +0 -0
  547. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/missing_manual_dict_aesthetic.png +0 -0
  548. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/multiple_aesthetics.png +0 -0
  549. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/ordinal_scale.png +0 -0
  550. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/test_legend_ordering_with_identity_scale.png +0 -0
  551. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/transform_aes_defaults_and_params.png +0 -0
  552. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_internals/transform_datetime_aes_param.png +0 -0
  553. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_labelling/caption_complex.png +0 -0
  554. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_labelling/caption_simple.png +0 -0
  555. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_labelling/labelling_with_colour.png +0 -0
  556. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_strings.png +0 -0
  557. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_tuples.png +0 -0
  558. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_scale_symlog/scale_y_symlog.png +0 -0
  559. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_ecdf/computed_y_column.png +0 -0
  560. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_ecdf/ecdf.png +0 -0
  561. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_ecdf/ecdf_no_pad.png +0 -0
  562. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_ellipse/ellipse.png +0 -0
  563. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_function/args.png +0 -0
  564. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_function/limits.png +0 -0
  565. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_hull/hull.png +0 -0
  566. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary/fun_args.png +0 -0
  567. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary/mean_cl_boot.png +0 -0
  568. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary/mean_cl_normal.png +0 -0
  569. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary/mean_sdl.png +0 -0
  570. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary/mean_se.png +0 -0
  571. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary/median_hilow.png +0 -0
  572. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary/summary_functions.png +0 -0
  573. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary_bin/continuous_x.png +0 -0
  574. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary_bin/discrete_x.png +0 -0
  575. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_stat_summary_bin/setting_binwidth.png +0 -0
  576. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/axis_ticks_and_length.png +0 -0
  577. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/element_text_with_sequence_values.png +0 -0
  578. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/no_ticks.png +0 -0
  579. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/override_axis_text.png +0 -0
  580. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_538.png +0 -0
  581. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_bw.png +0 -0
  582. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_classic.png +0 -0
  583. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_dark.png +0 -0
  584. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_gray.png +0 -0
  585. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_light.png +0 -0
  586. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_linedraw.png +0 -0
  587. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_matplotlib.png +0 -0
  588. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_minimal.png +0 -0
  589. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_seaborn.png +0 -0
  590. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_tufte.png +0 -0
  591. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_void.png +0 -0
  592. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_xkcd.png +0 -0
  593. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_theme/theme_xkcd_ci.png +0 -0
  594. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/baseline_images/test_watermark/watermark.png +0 -0
  595. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/conftest.py +0 -0
  596. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/images/plotnine-watermark.png +0 -0
  597. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_animation.py +0 -0
  598. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_annotation_logticks.py +0 -0
  599. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_annotation_stripes.py +0 -0
  600. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_binning.py +0 -0
  601. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_coords.py +0 -0
  602. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_doctools.py +0 -0
  603. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_facet_labelling.py +0 -0
  604. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_facets.py +0 -0
  605. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom.py +0 -0
  606. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_abline.py +0 -0
  607. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_bar_col_histogram.py +0 -0
  608. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_bin_2d.py +0 -0
  609. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_blank.py +0 -0
  610. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_boxplot.py +0 -0
  611. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_count.py +0 -0
  612. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_crossbar.py +0 -0
  613. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_density.py +0 -0
  614. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_density_2d.py +0 -0
  615. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_dotplot.py +0 -0
  616. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_errorbar_errorbarh.py +0 -0
  617. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_freqpoly.py +0 -0
  618. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_hline.py +0 -0
  619. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_linerange_pointrange.py +0 -0
  620. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_map.py +0 -0
  621. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_path_line_step.py +0 -0
  622. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_point.py +0 -0
  623. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_pointdensity.py +0 -0
  624. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_polygon.py +0 -0
  625. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_qq_qq_line.py +0 -0
  626. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_quantile.py +0 -0
  627. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_raster.py +0 -0
  628. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_rect_tile.py +0 -0
  629. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_ribbon_area.py +0 -0
  630. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_rug.py +0 -0
  631. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_segment.py +0 -0
  632. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_sina.py +0 -0
  633. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_smooth.py +0 -0
  634. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_spoke.py +0 -0
  635. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_text_label.py +0 -0
  636. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_violin.py +0 -0
  637. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_geom_vline.py +0 -0
  638. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_ggsave.py +0 -0
  639. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_guide_internals.py +0 -0
  640. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_helpers.py +0 -0
  641. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_layers.py +0 -0
  642. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_layout.py +0 -0
  643. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_lint_and_format.py +0 -0
  644. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_plot_composition.py +0 -0
  645. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_position.py +0 -0
  646. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_qplot.py +0 -0
  647. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_save_as_pdf_pages.py +0 -0
  648. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_scale_internals.py +0 -0
  649. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_scale_labelling.py +0 -0
  650. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_scale_linetype.py +0 -0
  651. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_scale_symlog.py +0 -0
  652. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_stat.py +0 -0
  653. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_stat_calculate_methods.py +0 -0
  654. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_stat_ecdf.py +0 -0
  655. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_stat_ellipse.py +0 -0
  656. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_stat_function.py +0 -0
  657. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_stat_hull.py +0 -0
  658. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_stat_summary.py +0 -0
  659. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_stat_summary_bin.py +0 -0
  660. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_theme.py +0 -0
  661. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_utils.py +0 -0
  662. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tests/test_watermark.py +0 -0
  663. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tools/release-checklist-tpl.md +0 -0
  664. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tools/release-checklist.py +0 -0
  665. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tools/term.py +0 -0
  666. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tools/update_baseline_images.py +0 -0
  667. {plotnine-0.15.0a3 → plotnine-0.15.0a4}/tools/visualize_tests.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plotnine
3
- Version: 0.15.0a3
3
+ Version: 0.15.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)
@@ -48,7 +48,7 @@ Requires-Dist: matplotlib>=3.8.0
48
48
  Requires-Dist: pandas>=2.2.0
49
49
  Requires-Dist: mizani~=0.14.0
50
50
  Requires-Dist: numpy>=1.23.5
51
- Requires-Dist: scipy>=1.8.0
51
+ Requires-Dist: scipy<1.16.0,>=1.8.0
52
52
  Requires-Dist: statsmodels>=0.14.0
53
53
  Provides-Extra: all
54
54
  Requires-Dist: plotnine[extra]; extra == "all"
@@ -9,7 +9,6 @@ from qrenderer import (
9
9
  RenderDoc,
10
10
  RenderDocClass,
11
11
  exclude_parameters,
12
- extend_base_class,
13
12
  )
14
13
  from qrenderer._pandoc.inlines import shortcode
15
14
  from quartodoc.pandoc.blocks import Blocks, CodeBlock, Div, Header
@@ -43,7 +42,6 @@ exclude_parameters(
43
42
  )
44
43
 
45
44
 
46
- @extend_base_class
47
45
  class _RenderDoc(RenderDoc):
48
46
  def render_body(self):
49
47
  body = super().render_body()
@@ -70,7 +68,6 @@ class _RenderDoc(RenderDoc):
70
68
  return name[8:] if name.startswith("options.") else name
71
69
 
72
70
 
73
- @extend_base_class
74
71
  class _RenderDocClass(RenderDocClass):
75
72
  def render_signature(self):
76
73
  signature = super().render_signature()
@@ -88,6 +88,16 @@ title: Changelog
88
88
 
89
89
  - Gained new helper function [](:func:`~plotnine.helpers.get_aesthetic_limits`).
90
90
 
91
+ - [](:class:`~plotnine.geom_point`) gained the ability to handle shapes of the form
92
+ `Sequence[tuple[float, float]]` e.g.
93
+
94
+ ```python
95
+ ((-2, -4), (-2, -1), (0, 1), (2, -1), (2, -4), (-2, -4))
96
+ ```
97
+
98
+ Which declares the vertices of a polygon shape.
99
+
100
+
91
101
  ### Enhancements
92
102
 
93
103
  - Included datasets [](:attr:`~plotnine.data.mpg`), [](:attr:`~plotnine.data.msleep`) and
@@ -12,9 +12,10 @@ from collections.abc import Iterable, Sequence
12
12
  from contextlib import suppress
13
13
  from copy import deepcopy
14
14
  from dataclasses import field
15
- from typing import TYPE_CHECKING, cast, overload
15
+ from typing import TYPE_CHECKING
16
16
  from warnings import warn
17
17
 
18
+ import mizani._colors.utils as color_utils
18
19
  import numpy as np
19
20
  import pandas as pd
20
21
  from pandas.core.groupby import DataFrameGroupBy
@@ -26,12 +27,10 @@ if TYPE_CHECKING:
26
27
  from typing import Any, Callable, Literal, TypeVar
27
28
 
28
29
  import numpy.typing as npt
29
- from matplotlib.typing import ColorType
30
30
  from typing_extensions import TypeGuard
31
31
 
32
32
  from plotnine.typing import (
33
33
  AnyArrayLike,
34
- AnySeries,
35
34
  DataLike,
36
35
  FloatArray,
37
36
  FloatArrayLike,
@@ -60,6 +59,8 @@ BOX_LOCATIONS: dict[str, tuple[float, float]] = {
60
59
  "centre": (0.5, 0.5),
61
60
  }
62
61
 
62
+ to_rgba = color_utils.to_rgba
63
+
63
64
 
64
65
  def is_scalar(val):
65
66
  """
@@ -361,7 +362,7 @@ def _id_var(x: AnyArrayLike, drop: bool = False) -> list[int]:
361
362
  lst = match(x, levels)
362
363
  lst = [item + 1 for item in lst]
363
364
 
364
- return lst # pyright: ignore[reportReturnType]
365
+ return lst
365
366
 
366
367
 
367
368
  def join_keys(x, y, by=None):
@@ -530,105 +531,6 @@ def remove_missing(
530
531
  return data
531
532
 
532
533
 
533
- @overload
534
- def to_rgba(colors: ColorType, alpha: float) -> ColorType: ...
535
-
536
-
537
- @overload
538
- def to_rgba(
539
- colors: Sequence[ColorType], alpha: float
540
- ) -> Sequence[ColorType] | ColorType: ...
541
-
542
-
543
- @overload
544
- def to_rgba(
545
- colors: AnySeries, alpha: AnySeries
546
- ) -> Sequence[ColorType] | ColorType: ...
547
-
548
-
549
- def to_rgba(
550
- colors: Sequence[ColorType] | AnySeries | ColorType,
551
- alpha: float | Sequence[float] | AnySeries,
552
- ) -> Sequence[ColorType] | ColorType:
553
- """
554
- Convert hex colors to rgba values.
555
-
556
- Parameters
557
- ----------
558
- colors : iterable | str
559
- colors to convert
560
- alphas : iterable | float
561
- alpha values
562
-
563
- Returns
564
- -------
565
- out : ndarray | tuple
566
- rgba color(s)
567
-
568
- Notes
569
- -----
570
- Matplotlib plotting functions only accept scalar
571
- alpha values. Hence no two objects with different
572
- alpha values may be plotted in one call. This would
573
- make plots with continuous alpha values innefficient.
574
- However :), the colors can be rgba hex values or
575
- list-likes and the alpha dimension will be respected.
576
- """
577
-
578
- def is_iterable(var):
579
- return np.iterable(var) and not isinstance(var, str)
580
-
581
- def has_alpha(c):
582
- return (isinstance(c, tuple) and len(c) == 4) or (
583
- isinstance(c, str) and len(c) == 9 and c[0] == "#"
584
- )
585
-
586
- def no_color(c):
587
- return c is None or c.lower() in ("none", "")
588
-
589
- def to_rgba_hex(c: ColorType, a: float) -> str:
590
- """
591
- Convert rgb color to rgba hex value
592
-
593
- If color c has an alpha channel, then alpha value
594
- a is ignored
595
- """
596
- from matplotlib.colors import colorConverter, to_hex
597
-
598
- if c in ("None", "none"):
599
- return c
600
-
601
- _has_alpha = has_alpha(c)
602
- c = to_hex(c, keep_alpha=_has_alpha)
603
-
604
- if not _has_alpha:
605
- arr = colorConverter.to_rgba(c, a)
606
- return to_hex(arr, keep_alpha=True)
607
-
608
- return c
609
-
610
- if is_iterable(colors):
611
- colors = cast("Sequence[ColorType]", colors)
612
-
613
- if all(no_color(c) for c in colors):
614
- return "none"
615
-
616
- if isinstance(alpha, (Sequence, pd.Series)):
617
- return [to_rgba_hex(c, a) for c, a in zip(colors, alpha)]
618
- else:
619
- return [to_rgba_hex(c, alpha) for c in colors]
620
- else:
621
- colors = cast("ColorType", colors)
622
-
623
- if no_color(colors):
624
- return colors
625
-
626
- if isinstance(alpha, (Sequence, pd.Series)):
627
- return [to_rgba_hex(colors, a) for a in alpha]
628
- else:
629
- return to_rgba_hex(colors, alpha)
630
-
631
-
632
534
  def groupby_apply(
633
535
  df: pd.DataFrame,
634
536
  cols: str | list[str],
@@ -71,7 +71,7 @@ STAT_SIGNATURE_TPL = """
71
71
 
72
72
  common_params_doc = {
73
73
  "mapping": """\
74
- Aesthetic mappings created with [aes](:class:`plotnine.mapping.aes`). If \
74
+ Aesthetic mappings created with [aes](:class:`plotnine.mapping.aes.aes`). If \
75
75
  specified and `inherit_aes=True`{.py}, it is combined with the default \
76
76
  mapping for the plot. You must supply mapping if there is no plot mapping.""",
77
77
  "data": """\
@@ -103,7 +103,7 @@ the final image is in vector format.""",
103
103
 
104
104
 
105
105
  GEOM_PARAMS_TPL = """
106
- mapping : ~plotnine.mapping.aes, default=None
106
+ mapping : ~plotnine.mapping.aes.aes, default=None
107
107
  {mapping}
108
108
  {_aesthetics_doc}
109
109
  data : ~pandas.DataFrame, default=None
@@ -124,7 +124,7 @@ raster : bool, default={default_raster}
124
124
  """
125
125
 
126
126
  STAT_PARAMS_TPL = """
127
- mapping : ~plotnine.mapping.aes, default=None
127
+ mapping : ~plotnine.mapping.aes.aes, default=None
128
128
  {mapping}
129
129
  {_aesthetics_doc}
130
130
  data : ~pandas.DataFrame, default=None
@@ -64,16 +64,16 @@ class annotate:
64
64
  def __init__(
65
65
  self,
66
66
  geom: str | type[geom_base_class],
67
- x: float | None = None,
68
- y: float | None = None,
69
- xmin: float | None = None,
70
- xmax: float | None = None,
71
- xend: float | None = None,
72
- xintercept: float | None = None,
73
- ymin: float | None = None,
74
- ymax: float | None = None,
75
- yend: float | None = None,
76
- yintercept: float | None = None,
67
+ x: float | list[float] | None = None,
68
+ y: float | list[float] | None = None,
69
+ xmin: float | list[float] | None = None,
70
+ xmax: float | list[float] | None = None,
71
+ xend: float | list[float] | None = None,
72
+ xintercept: float | list[float] | None = None,
73
+ ymin: float | list[float] | None = None,
74
+ ymax: float | list[float] | None = None,
75
+ yend: float | list[float] | None = None,
76
+ yintercept: float | list[float] | None = None,
77
77
  **kwargs: Any,
78
78
  ):
79
79
  variables = locals()
@@ -7,13 +7,12 @@ from itertools import chain, repeat
7
7
 
8
8
  from .._utils import (
9
9
  data_mapping_as_kwargs,
10
- is_list_like,
11
10
  remove_missing,
12
11
  )
13
12
  from .._utils.registry import Register, Registry
14
13
  from ..exceptions import PlotnineError
15
14
  from ..layer import layer
16
- from ..mapping.aes import is_valid_aesthetic, rename_aesthetics
15
+ from ..mapping.aes import RepeatAesthetic, rename_aesthetics
17
16
  from ..mapping.evaluation import evaluate
18
17
  from ..positions.position import position
19
18
  from ..stats.stat import stat
@@ -179,11 +178,16 @@ class geom(ABC, metaclass=Register):
179
178
  ----------
180
179
  data :
181
180
  Data
181
+ """
182
182
 
183
- Returns
184
- -------
185
- out :
186
- Parameters used by the geoms.
183
+ def setup_aes_params(self, data: pd.DataFrame):
184
+ """
185
+ Override this method to verify and/or adjust aesthetic parameters
186
+
187
+ Parameters
188
+ ----------
189
+ data :
190
+ Data
187
191
  """
188
192
 
189
193
  def setup_data(self, data: pd.DataFrame) -> pd.DataFrame:
@@ -255,23 +259,28 @@ class geom(ABC, metaclass=Register):
255
259
  data[ae] = evaled[ae]
256
260
 
257
261
  num_panels = len(data["PANEL"].unique()) if "PANEL" in data else 1
262
+ across_panels = num_panels > 1 and not self.params["inherit_aes"]
258
263
 
259
264
  # Aesthetics set as parameters to the geom/stat
260
265
  for ae, value in self.aes_params.items():
261
266
  try:
262
267
  data[ae] = value
263
268
  except ValueError as e:
264
- # sniff out the special cases, like custom
265
- # tupled linetypes, shapes and colors
266
- if is_valid_aesthetic(value, ae):
267
- data[ae] = [value] * len(data)
268
- elif num_panels > 1 and is_list_like(value):
269
- data[ae] = list(chain(*repeat(value, num_panels)))
269
+ # NOTE: Handling of the edgecases in this exception is not
270
+ # foolproof.
271
+ repeat_ae = getattr(RepeatAesthetic, ae, None)
272
+ if across_panels:
273
+ # Adding an annotation/abline/hline/vhline with multiple
274
+ # items across to more than 1 panel
275
+ value = list(chain(*repeat(value, num_panels)))
276
+ data[ae] = value
277
+ elif repeat_ae:
278
+ # Some aesthetics may have valid values that are not
279
+ # scalar. e.g. sequences. For such case, we need to
280
+ # insert a sequence of the same value.
281
+ data[ae] = repeat_ae(value, len(data))
270
282
  else:
271
- msg = (
272
- f"'{value}' does not look like a "
273
- f"valid value for `{ae}`"
274
- )
283
+ msg = f"'{ae}={value}' does not look like a valid value"
275
284
  raise PlotnineError(msg) from e
276
285
 
277
286
  return data
@@ -257,6 +257,7 @@ class layer:
257
257
  """
258
258
  self.geom.params["zorder"] = self.zorder
259
259
  self.geom.params["raster"] = self.raster
260
+ self.geom.params["inherit_aes"] = self.inherit_aes
260
261
 
261
262
  def compute_aesthetics(self, plot: ggplot):
262
263
  """
@@ -330,6 +331,7 @@ class layer:
330
331
 
331
332
  self.geom.params.update(self.stat.params)
332
333
  self.geom.setup_params(data)
334
+ self.geom.setup_aes_params(data)
333
335
  data = self.geom.setup_data(data)
334
336
 
335
337
  check_required_aesthetics(
@@ -8,7 +8,9 @@ from dataclasses import fields
8
8
  from functools import cached_property
9
9
  from typing import TYPE_CHECKING, Any, Dict
10
10
 
11
+ import numpy as np
11
12
  import pandas as pd
13
+ from mizani._colors.utils import is_color_tuple
12
14
 
13
15
  from ..iapi import labels_view
14
16
  from .evaluation import after_stat, stage
@@ -538,23 +540,23 @@ def make_labels(mapping: dict[str, Any] | aes) -> labels_view:
538
540
  )
539
541
 
540
542
 
541
- def is_valid_aesthetic(value: Any, ae: str) -> bool:
543
+ class RepeatAesthetic:
542
544
  """
543
- Return True if `value` looks valid.
545
+ Repeat an Aeshetic a given number of times
544
546
 
545
- Parameters
546
- ----------
547
- value :
548
- Value to check
549
- ae :
550
- Aesthetic name
547
+ The methods in this class know how to create sequences of aesthetics
548
+ whose values may not be scalar.
551
549
 
552
- Notes
553
- -----
554
- There are no guarantees that he value is spot on
555
- valid.
550
+ Some aesthetics may have valid values that are not scalar. e.g.
551
+ sequences. Inserting one of such a value in a dataframe as a column
552
+ would either lead to the wrong input or fail. The s
556
553
  """
557
- if ae == "linetype":
554
+
555
+ @staticmethod
556
+ def linetype(value: Any, n: int) -> Sequence[Any]:
557
+ """
558
+ Repeat linetypes
559
+ """
558
560
  named = {
559
561
  "solid",
560
562
  "dashed",
@@ -569,47 +571,75 @@ def is_valid_aesthetic(value: Any, ae: str) -> bool:
569
571
  "",
570
572
  }
571
573
  if value in named:
572
- return True
574
+ return [value] * n
573
575
 
574
576
  # tuple of the form (offset, (on, off, on, off, ...))
575
577
  # e.g (0, (1, 2))
576
- conditions = [
577
- isinstance(value, tuple),
578
- isinstance(value[0], int),
579
- isinstance(value[1], tuple),
580
- len(value[1]) % 2 == 0,
581
- all(isinstance(x, int) for x in value[1]),
582
- ]
583
- return all(conditions)
584
-
585
- elif ae == "shape":
578
+ if (
579
+ isinstance(value, tuple)
580
+ and isinstance(value[0], int)
581
+ and isinstance(value[1], tuple)
582
+ and len(value[1]) % 2 == 0
583
+ and all(isinstance(x, int) for x in value[1])
584
+ ):
585
+ return [value] * n
586
+
587
+ raise ValueError(f"{value} is not a known linetype.")
588
+
589
+ @staticmethod
590
+ def color(value: Any, n: int) -> Sequence[Any]:
591
+ """
592
+ Repeat colors
593
+ """
586
594
  if isinstance(value, str):
587
- return True
595
+ return [value] * n
596
+ if is_color_tuple(value):
597
+ return [tuple(value)] * n
598
+
599
+ raise ValueError(f"{value} is not a known color.")
600
+
601
+ fill = color
588
602
 
603
+ @staticmethod
604
+ def shape(value: Any, n: int) -> Any:
605
+ """
606
+ Repeat shapes
607
+ """
608
+ if isinstance(value, str):
609
+ return [value] * n
589
610
  # tuple of the form (numsides, style, angle)
590
611
  # where style is in the range [0, 3]
591
612
  # e.g (4, 1, 45)
592
- conditions = [
593
- isinstance(value, tuple),
594
- all(isinstance(x, int) for x in value),
595
- 0 <= value[1] < 3,
596
- ]
597
- return all(conditions)
598
-
599
- elif ae in {"color", "fill"}:
600
- if isinstance(value, str):
601
- return True
602
- with suppress(TypeError):
603
- if isinstance(value, (tuple, list)) and all(
604
- 0 <= x <= 1 for x in value
605
- ):
606
- return True
607
- return False
613
+ if (
614
+ isinstance(value, tuple)
615
+ and all(isinstance(x, int) for x in value)
616
+ and 0 <= value[1] < 3
617
+ ):
618
+ return [value] * n
619
+
620
+ if is_shape_points(value):
621
+ return [tuple(value)] * n
622
+
623
+ raise ValueError(f"{value} is not a know shape.")
608
624
 
609
- # For any other aesthetics we return False to allow
610
- # for special cases to be discovered and then coded
611
- # for appropriately.
612
- return False
625
+
626
+ def is_shape_points(obj: Any) -> bool:
627
+ """
628
+ Return True if obj is like Sequence[tuple[float, float]]
629
+ """
630
+
631
+ def is_numeric(obj) -> bool:
632
+ """
633
+ Return True if obj is a python or numpy float or integer
634
+ """
635
+ return isinstance(obj, (float, int, np.floating, np.integer))
636
+
637
+ if not iter(obj):
638
+ return False
639
+ try:
640
+ return all(is_numeric(a) and is_numeric(b) for a, b in obj)
641
+ except TypeError:
642
+ return False
613
643
 
614
644
 
615
645
  def has_groups(data: pd.DataFrame) -> bool:
@@ -396,7 +396,7 @@ class scale_continuous(
396
396
  scaled = [na_value if x == "nan" else x for x in scaled]
397
397
  else:
398
398
  scaled[pd.isna(scaled)] = na_value
399
- return scaled # pyright: ignore[reportReturnType]
399
+ return scaled
400
400
 
401
401
  def get_breaks(
402
402
  self, limits: Optional[tuple[float, float]] = None
@@ -206,7 +206,7 @@ class scale_discrete(
206
206
  pal = np.asarray(pal, dtype=object)
207
207
  idx = np.asarray(match(x, limits))
208
208
  try:
209
- pal_match = [pal[i] if i >= 0 else None for i in idx] # pyright: ignore[reportCallIssue,reportArgumentType]
209
+ pal_match = [pal[i] if i >= 0 else None for i in idx]
210
210
  except IndexError:
211
211
  # Deal with missing data
212
212
  # - Insert NaN where there is no match
@@ -155,7 +155,7 @@ def contour_lines(X, Y, Z, levels: int | FloatArrayLike):
155
155
  level_values = []
156
156
  start_pid = 1
157
157
  for level in levels:
158
- vertices, *_ = cgen.create_contour(level) # pyright: ignore[reportArgumentType]
158
+ vertices, *_ = cgen.create_contour(level)
159
159
  for pid, piece in enumerate(vertices, start=start_pid):
160
160
  n = len(piece) # pyright: ignore
161
161
  segments.append(piece)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plotnine
3
- Version: 0.15.0a3
3
+ Version: 0.15.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)
@@ -48,7 +48,7 @@ Requires-Dist: matplotlib>=3.8.0
48
48
  Requires-Dist: pandas>=2.2.0
49
49
  Requires-Dist: mizani~=0.14.0
50
50
  Requires-Dist: numpy>=1.23.5
51
- Requires-Dist: scipy>=1.8.0
51
+ Requires-Dist: scipy<1.16.0,>=1.8.0
52
52
  Requires-Dist: statsmodels>=0.14.0
53
53
  Provides-Extra: all
54
54
  Requires-Dist: plotnine[extra]; extra == "all"
@@ -326,11 +326,13 @@ tests/test_theme.py
326
326
  tests/test_utils.py
327
327
  tests/test_watermark.py
328
328
  tests/baseline_images/test_aes/geom_crossbar.png
329
+ tests/baseline_images/test_aes/irregular_shapes.png
329
330
  tests/baseline_images/test_aes/reorder.png
330
331
  tests/baseline_images/test_aes/reorder_index.png
331
332
  tests/baseline_images/test_aes/stat_bin_2d.png
332
333
  tests/baseline_images/test_aes/stat_ecdf.png
333
334
  tests/baseline_images/test_aes/test_stat_function.png
335
+ tests/baseline_images/test_annotate/annotate_faceting.png
334
336
  tests/baseline_images/test_annotate/multiple_annotation_geoms.png
335
337
  tests/baseline_images/test_annotation_logticks/annotation_logticks.png
336
338
  tests/baseline_images/test_annotation_logticks/annotation_logticks_base_5.png
@@ -2,7 +2,7 @@ matplotlib>=3.8.0
2
2
  pandas>=2.2.0
3
3
  mizani~=0.14.0
4
4
  numpy>=1.23.5
5
- scipy>=1.8.0
5
+ scipy<1.16.0,>=1.8.0
6
6
  statsmodels>=0.14.0
7
7
 
8
8
  [all]
@@ -27,7 +27,7 @@ dependencies = [
27
27
  "pandas>=2.2.0",
28
28
  "mizani~=0.14.0",
29
29
  "numpy>=1.23.5",
30
- "scipy>=1.8.0",
30
+ "scipy>=1.8.0,<1.16.0",
31
31
  "statsmodels>=0.14.0",
32
32
  ]
33
33
  requires-python = ">=3.10"
@@ -26,6 +26,14 @@ data = pd.DataFrame(
26
26
  )
27
27
 
28
28
 
29
+ data = pd.DataFrame(
30
+ {
31
+ "x": pd.Categorical(["b", "d", "c", "a"], ordered=True),
32
+ "y": [1, 2, 3, 4],
33
+ }
34
+ )
35
+
36
+
29
37
  def test_reorder():
30
38
  p = (
31
39
  ggplot(data, aes("reorder(x, y)", "y", fill="reorder(x, y)"))
@@ -53,6 +61,30 @@ def test_labels_lists():
53
61
  assert p.labels.y is None
54
62
 
55
63
 
64
+ def test_irregular_shapes():
65
+ import matplotlib.path as mpath
66
+
67
+ five_point_astericks = (5, 2, 60)
68
+ house = ((-2, -4), (-2, -1), (0, 1), (2, -1), (2, -4), (-2, -4))
69
+
70
+ star = mpath.Path.unit_regular_star(6)
71
+ circle = mpath.Path.unit_circle()
72
+
73
+ cut_star = mpath.Path(
74
+ vertices=[*circle.vertices, *star.vertices[::-1]], # pyright: ignore[reportGeneralTypeIssues,reportIndexIssue,reportArgumentType]
75
+ codes=[*circle.codes, *star.codes], # pyright: ignore[reportOptionalIterable,reportGeneralTypeIssues]
76
+ )
77
+
78
+ p = (
79
+ ggplot(data, aes("x", "y"))
80
+ + geom_point(shape=five_point_astericks, size=10)
81
+ + geom_point(aes(y="y-.5"), shape=house, size=10)
82
+ + geom_point(aes(y="y-1"), shape=cut_star, size=10)
83
+ )
84
+
85
+ assert p == "irregular_shapes"
86
+
87
+
56
88
  class TestTransScale:
57
89
  df1 = pd.DataFrame({"var": np.arange(1, 11) / 10})
58
90