plopp 25.4.0__tar.gz → 25.4.1__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 (231) hide show
  1. {plopp-25.4.0 → plopp-25.4.1}/PKG-INFO +1 -1
  2. {plopp-25.4.0 → plopp-25.4.1}/pyproject.toml +1 -2
  3. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/line.py +18 -22
  4. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/plotly/line.py +12 -11
  5. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/plot.py +2 -6
  6. {plopp-25.4.0 → plopp-25.4.1}/src/plopp.egg-info/PKG-INFO +1 -1
  7. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/matplotlib/mpl_line_test.py +42 -0
  8. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/matplotlib/mpl_plot_test.py +9 -0
  9. {plopp-25.4.0 → plopp-25.4.1}/.copier-answers.yml +0 -0
  10. {plopp-25.4.0 → plopp-25.4.1}/.github/dependabot.yml +0 -0
  11. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/ci.yml +0 -0
  12. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/docs.yml +0 -0
  13. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/nightly_at_main.yml +0 -0
  14. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/nightly_at_release.yml +0 -0
  15. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/python-version-ci +0 -0
  16. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/release.yml +0 -0
  17. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/test.yml +0 -0
  18. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/unpinned.yml +0 -0
  19. {plopp-25.4.0 → plopp-25.4.1}/.github/workflows/weekly_windows_macos.yml +0 -0
  20. {plopp-25.4.0 → plopp-25.4.1}/.gitignore +0 -0
  21. {plopp-25.4.0 → plopp-25.4.1}/.pre-commit-config.yaml +0 -0
  22. {plopp-25.4.0 → plopp-25.4.1}/.python-version +0 -0
  23. {plopp-25.4.0 → plopp-25.4.1}/CODE_OF_CONDUCT.md +0 -0
  24. {plopp-25.4.0 → plopp-25.4.1}/CONTRIBUTING.md +0 -0
  25. {plopp-25.4.0 → plopp-25.4.1}/LICENSE +0 -0
  26. {plopp-25.4.0 → plopp-25.4.1}/MANIFEST.in +0 -0
  27. {plopp-25.4.0 → plopp-25.4.1}/README.md +0 -0
  28. {plopp-25.4.0 → plopp-25.4.1}/conda/meta.yaml +0 -0
  29. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/anaconda-icon.js +0 -0
  30. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/circle-exclamation.svg +0 -0
  31. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/custom.css +0 -0
  32. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/customization/custom-interfaces.png +0 -0
  33. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/customization/graph-node-tips.png +0 -0
  34. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/customization/subplots.png +0 -0
  35. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/customization/tweaking-figures.png +0 -0
  36. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/favicon.ico +0 -0
  37. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/gallery/README.txt +0 -0
  38. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/gallery/peeling-layers-thumbnail.png +0 -0
  39. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/gallery/scatter3d-with-slider-thumbnail.png +0 -0
  40. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/gallery/scatter3d-with-threshold-thumbnail.png +0 -0
  41. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/logo-dark.svg +0 -0
  42. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/logo-large-dark.svg +0 -0
  43. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/logo-large.svg +0 -0
  44. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/logo.svg +0 -0
  45. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/plotting/image-plot.png +0 -0
  46. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/plotting/inspector-plot.png +0 -0
  47. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/plotting/line-plot.png +0 -0
  48. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/plotting/mesh3d-plot.png +0 -0
  49. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/plotting/scatter-plot.png +0 -0
  50. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/plotting/scatter3d-plot.png +0 -0
  51. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/plotting/slicer-plot.png +0 -0
  52. {plopp-25.4.0 → plopp-25.4.1}/docs/_static/plotting/super-plot.png +0 -0
  53. {plopp-25.4.0 → plopp-25.4.1}/docs/_templates/class-template.rst +0 -0
  54. {plopp-25.4.0 → plopp-25.4.1}/docs/_templates/doc_version.html +0 -0
  55. {plopp-25.4.0 → plopp-25.4.1}/docs/_templates/module-template.rst +0 -0
  56. {plopp-25.4.0 → plopp-25.4.1}/docs/_templates/scipp-class-template.rst +0 -0
  57. {plopp-25.4.0 → plopp-25.4.1}/docs/_templates/scipp-module-template.rst +0 -0
  58. {plopp-25.4.0 → plopp-25.4.1}/docs/about/index.md +0 -0
  59. {plopp-25.4.0 → plopp-25.4.1}/docs/api-reference/index.md +0 -0
  60. {plopp-25.4.0 → plopp-25.4.1}/docs/api-reference/matplotlib.md +0 -0
  61. {plopp-25.4.0 → plopp-25.4.1}/docs/api-reference/plotly.md +0 -0
  62. {plopp-25.4.0 → plopp-25.4.1}/docs/api-reference/pythreejs.md +0 -0
  63. {plopp-25.4.0 → plopp-25.4.1}/docs/conf.py +0 -0
  64. {plopp-25.4.0 → plopp-25.4.1}/docs/customization/custom-interfaces.ipynb +0 -0
  65. {plopp-25.4.0 → plopp-25.4.1}/docs/customization/graph-node-tips.ipynb +0 -0
  66. {plopp-25.4.0 → plopp-25.4.1}/docs/customization/index.md +0 -0
  67. {plopp-25.4.0 → plopp-25.4.1}/docs/customization/subplots.ipynb +0 -0
  68. {plopp-25.4.0 → plopp-25.4.1}/docs/customization/tweaking-figures.ipynb +0 -0
  69. {plopp-25.4.0 → plopp-25.4.1}/docs/developer/coding-conventions.md +0 -0
  70. {plopp-25.4.0 → plopp-25.4.1}/docs/developer/dependency-management.md +0 -0
  71. {plopp-25.4.0 → plopp-25.4.1}/docs/developer/getting-started.md +0 -0
  72. {plopp-25.4.0 → plopp-25.4.1}/docs/developer/index.md +0 -0
  73. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/index.ipynb +0 -0
  74. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/interactive-masking.ipynb +0 -0
  75. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/masking-a-range.ipynb +0 -0
  76. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/nyc-taxi.ipynb +0 -0
  77. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/peeling-layers.ipynb +0 -0
  78. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/polar-plots.ipynb +0 -0
  79. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/rectangle-selection.ipynb +0 -0
  80. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/scatter3d-with-slider.ipynb +0 -0
  81. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/scatter3d-with-threshold.ipynb +0 -0
  82. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/streaming-plot.ipynb +0 -0
  83. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/tiled-random-samples.ipynb +0 -0
  84. {plopp-25.4.0 → plopp-25.4.1}/docs/gallery/updating-scatter.ipynb +0 -0
  85. {plopp-25.4.0 → plopp-25.4.1}/docs/getting-started/index.md +0 -0
  86. {plopp-25.4.0 → plopp-25.4.1}/docs/getting-started/installation.md +0 -0
  87. {plopp-25.4.0 → plopp-25.4.1}/docs/getting-started/numpy-pandas-xarray.ipynb +0 -0
  88. {plopp-25.4.0 → plopp-25.4.1}/docs/getting-started/overview.ipynb +0 -0
  89. {plopp-25.4.0 → plopp-25.4.1}/docs/getting-started/saving-figures.ipynb +0 -0
  90. {plopp-25.4.0 → plopp-25.4.1}/docs/index.md +0 -0
  91. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/image-plot.ipynb +0 -0
  92. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/index.md +0 -0
  93. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/inspector-plot.ipynb +0 -0
  94. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/line-plot.ipynb +0 -0
  95. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/mesh3d-plot.ipynb +0 -0
  96. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/scatter-plot.ipynb +0 -0
  97. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/scatter3d-plot.ipynb +0 -0
  98. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/slicer-plot.ipynb +0 -0
  99. {plopp-25.4.0 → plopp-25.4.1}/docs/plotting/super-plot.ipynb +0 -0
  100. {plopp-25.4.0 → plopp-25.4.1}/requirements/base.in +0 -0
  101. {plopp-25.4.0 → plopp-25.4.1}/requirements/base.txt +0 -0
  102. {plopp-25.4.0 → plopp-25.4.1}/requirements/basetest.in +0 -0
  103. {plopp-25.4.0 → plopp-25.4.1}/requirements/basetest.txt +0 -0
  104. {plopp-25.4.0 → plopp-25.4.1}/requirements/ci.in +0 -0
  105. {plopp-25.4.0 → plopp-25.4.1}/requirements/ci.txt +0 -0
  106. {plopp-25.4.0 → plopp-25.4.1}/requirements/dev.in +0 -0
  107. {plopp-25.4.0 → plopp-25.4.1}/requirements/dev.txt +0 -0
  108. {plopp-25.4.0 → plopp-25.4.1}/requirements/docs.in +0 -0
  109. {plopp-25.4.0 → plopp-25.4.1}/requirements/docs.txt +0 -0
  110. {plopp-25.4.0 → plopp-25.4.1}/requirements/make_base.py +0 -0
  111. {plopp-25.4.0 → plopp-25.4.1}/requirements/mini.in +0 -0
  112. {plopp-25.4.0 → plopp-25.4.1}/requirements/mini.txt +0 -0
  113. {plopp-25.4.0 → plopp-25.4.1}/requirements/mypy.in +0 -0
  114. {plopp-25.4.0 → plopp-25.4.1}/requirements/mypy.txt +0 -0
  115. {plopp-25.4.0 → plopp-25.4.1}/requirements/nightly.in +0 -0
  116. {plopp-25.4.0 → plopp-25.4.1}/requirements/nightly.txt +0 -0
  117. {plopp-25.4.0 → plopp-25.4.1}/requirements/noplotly.in +0 -0
  118. {plopp-25.4.0 → plopp-25.4.1}/requirements/noplotly.txt +0 -0
  119. {plopp-25.4.0 → plopp-25.4.1}/requirements/static.in +0 -0
  120. {plopp-25.4.0 → plopp-25.4.1}/requirements/static.txt +0 -0
  121. {plopp-25.4.0 → plopp-25.4.1}/requirements/test.in +0 -0
  122. {plopp-25.4.0 → plopp-25.4.1}/requirements/test.txt +0 -0
  123. {plopp-25.4.0 → plopp-25.4.1}/requirements/wheels.in +0 -0
  124. {plopp-25.4.0 → plopp-25.4.1}/requirements/wheels.txt +0 -0
  125. {plopp-25.4.0 → plopp-25.4.1}/resources/logo-plopp-2022.svg +0 -0
  126. {plopp-25.4.0 → plopp-25.4.1}/setup.cfg +0 -0
  127. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/__init__.py +0 -0
  128. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/__init__.py +0 -0
  129. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/common.py +0 -0
  130. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/__init__.py +0 -0
  131. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/canvas.py +0 -0
  132. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/fast_image.py +0 -0
  133. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/figure.py +0 -0
  134. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/image.py +0 -0
  135. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/mesh_image.py +0 -0
  136. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/scatter.py +0 -0
  137. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/tiled.py +0 -0
  138. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/matplotlib/utils.py +0 -0
  139. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/plotly/__init__.py +0 -0
  140. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/plotly/canvas.py +0 -0
  141. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/plotly/figure.py +0 -0
  142. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/pythreejs/__init__.py +0 -0
  143. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/pythreejs/canvas.py +0 -0
  144. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/pythreejs/figure.py +0 -0
  145. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/pythreejs/mesh3d.py +0 -0
  146. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/pythreejs/outline.py +0 -0
  147. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/backends/pythreejs/scatter3d.py +0 -0
  148. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/__init__.py +0 -0
  149. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/__init__.pyi +0 -0
  150. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/graph.py +0 -0
  151. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/helpers.py +0 -0
  152. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/limits.py +0 -0
  153. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/node_class.py +0 -0
  154. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/typing.py +0 -0
  155. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/utils.py +0 -0
  156. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/core/view.py +0 -0
  157. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/data/__init__.py +0 -0
  158. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/data/examples.py +0 -0
  159. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/data/factory.py +0 -0
  160. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/data/testing.py +0 -0
  161. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/__init__.py +0 -0
  162. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/__init__.pyi +0 -0
  163. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/basefig.py +0 -0
  164. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/bbox.py +0 -0
  165. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/camera.py +0 -0
  166. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/colormapper.py +0 -0
  167. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/figures.py +0 -0
  168. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/graphicalview.py +0 -0
  169. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/graphics/tiled.py +0 -0
  170. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/__init__.py +0 -0
  171. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/__init__.pyi +0 -0
  172. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/common.py +0 -0
  173. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/inspector.py +0 -0
  174. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/mesh3d.py +0 -0
  175. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/scatter.py +0 -0
  176. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/scatter3d.py +0 -0
  177. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/slicer.py +0 -0
  178. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/superplot.py +0 -0
  179. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/plotting/xyplot.py +0 -0
  180. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/py.typed +0 -0
  181. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/utils.py +0 -0
  182. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/__init__.py +0 -0
  183. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/__init__.pyi +0 -0
  184. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/box.py +0 -0
  185. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/checkboxes.py +0 -0
  186. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/clip3d.py +0 -0
  187. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/debounce.py +0 -0
  188. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/drawing.py +0 -0
  189. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/linesave.py +0 -0
  190. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/slice.py +0 -0
  191. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/style.py +0 -0
  192. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/toolbar.py +0 -0
  193. {plopp-25.4.0 → plopp-25.4.1}/src/plopp/widgets/tools.py +0 -0
  194. {plopp-25.4.0 → plopp-25.4.1}/src/plopp.egg-info/SOURCES.txt +0 -0
  195. {plopp-25.4.0 → plopp-25.4.1}/src/plopp.egg-info/dependency_links.txt +0 -0
  196. {plopp-25.4.0 → plopp-25.4.1}/src/plopp.egg-info/requires.txt +0 -0
  197. {plopp-25.4.0 → plopp-25.4.1}/src/plopp.egg-info/top_level.txt +0 -0
  198. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/matplotlib/mpl_image_test.py +0 -0
  199. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/matplotlib/mpl_scatter_test.py +0 -0
  200. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/matplotlib/mpl_tiled_test.py +0 -0
  201. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/plotly/conftest.py +0 -0
  202. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/plotly/plotly_line_test.py +0 -0
  203. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/pythreejs/pythreejs_canvas_test.py +0 -0
  204. {plopp-25.4.0 → plopp-25.4.1}/tests/backends/pythreejs/pythreejs_scatter3d_test.py +0 -0
  205. {plopp-25.4.0 → plopp-25.4.1}/tests/conftest.py +0 -0
  206. {plopp-25.4.0 → plopp-25.4.1}/tests/core/graph_test.py +0 -0
  207. {plopp-25.4.0 → plopp-25.4.1}/tests/core/limits_test.py +0 -0
  208. {plopp-25.4.0 → plopp-25.4.1}/tests/core/node_test.py +0 -0
  209. {plopp-25.4.0 → plopp-25.4.1}/tests/core/utils_test.py +0 -0
  210. {plopp-25.4.0 → plopp-25.4.1}/tests/graphics/artists_test.py +0 -0
  211. {plopp-25.4.0 → plopp-25.4.1}/tests/graphics/canvas_test.py +0 -0
  212. {plopp-25.4.0 → plopp-25.4.1}/tests/graphics/colormapper_test.py +0 -0
  213. {plopp-25.4.0 → plopp-25.4.1}/tests/graphics/figures_test.py +0 -0
  214. {plopp-25.4.0 → plopp-25.4.1}/tests/high_level_test.py +0 -0
  215. {plopp-25.4.0 → plopp-25.4.1}/tests/minimal_plot_test.py +0 -0
  216. {plopp-25.4.0 → plopp-25.4.1}/tests/package_test.py +0 -0
  217. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/common_test.py +0 -0
  218. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/inspector_test.py +0 -0
  219. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/mesh3d_test.py +0 -0
  220. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/plot_1d_test.py +0 -0
  221. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/plot_2d_test.py +0 -0
  222. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/scatter3d_test.py +0 -0
  223. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/scatter_test.py +0 -0
  224. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/slicer_test.py +0 -0
  225. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/superplot_test.py +0 -0
  226. {plopp-25.4.0 → plopp-25.4.1}/tests/plotting/xyplot_test.py +0 -0
  227. {plopp-25.4.0 → plopp-25.4.1}/tests/widgets/box_test.py +0 -0
  228. {plopp-25.4.0 → plopp-25.4.1}/tests/widgets/checkboxes_test.py +0 -0
  229. {plopp-25.4.0 → plopp-25.4.1}/tests/widgets/clip3d_test.py +0 -0
  230. {plopp-25.4.0 → plopp-25.4.1}/tests/widgets/slice_test.py +0 -0
  231. {plopp-25.4.0 → plopp-25.4.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plopp
3
- Version: 25.4.0
3
+ Version: 25.4.1
4
4
  Summary: Visualization library for Scipp
5
5
  Author: Scipp contributors
6
6
  License: BSD 3-Clause License
@@ -81,10 +81,9 @@ filterwarnings = [
81
81
  'ignore:Passing unrecognized arguments to super:DeprecationWarning',
82
82
  'ignore:Jupyter is migrating its paths:DeprecationWarning',
83
83
  'ignore:setDaemon\(\) is deprecated, set the daemon attribute instead:DeprecationWarning',
84
- 'ignore:TriCutTool is deprecated::',
85
- 'ignore:Cut3dTool is deprecated::',
86
84
  # Should be removed once https://github.com/plotly/plotly.py/issues/4997 is fixed
87
85
  'ignore: \*scattermapbox\* is deprecated:DeprecationWarning',
86
+ 'ignore:There is no current event loop:DeprecationWarning',
88
87
  ]
89
88
 
90
89
  [tool.ruff]
@@ -81,6 +81,7 @@ class Line:
81
81
  'linestyle': 'solid',
82
82
  'linewidth': 1.5,
83
83
  'color': f'C{artist_number}',
84
+ 'zorder': 2,
84
85
  }
85
86
  markers = list(Line2D.markers.keys())
86
87
  default_plot_style = {
@@ -88,6 +89,7 @@ class Line:
88
89
  'linewidth': 1.5,
89
90
  'marker': markers[(artist_number + 2) % len(markers)],
90
91
  'color': f'C{artist_number}',
92
+ 'zorder': 2,
91
93
  }
92
94
 
93
95
  if line_data["hist"]:
@@ -95,40 +97,35 @@ class Line:
95
97
  line_data['values']['x'],
96
98
  line_data['values']['y'],
97
99
  label=self.label,
98
- zorder=10,
99
100
  **{**default_step_style, **line_args},
100
101
  )[0]
101
102
 
102
103
  self._mask = self._ax.step(line_data['mask']['x'], line_data['mask']['y'])[
103
104
  0
104
105
  ]
105
- self._mask.update_from(self._line)
106
- self._mask.set_color(mask_color)
107
- self._mask.set_label(None)
108
- self._mask.set_linewidth(self._mask.get_linewidth() * 3)
109
- self._mask.set_zorder(self._mask.get_zorder() - 1)
110
- self._mask.set_visible(line_data['mask']['visible'])
111
106
  else:
112
107
  self._line = self._ax.plot(
113
108
  line_data['values']['x'],
114
109
  line_data['values']['y'],
115
110
  label=self.label,
116
- zorder=10,
117
111
  **{**default_plot_style, **line_args},
118
112
  )[0]
119
- self._mask = self._ax.plot(
120
- line_data['mask']['x'],
121
- line_data['mask']['y'],
122
- zorder=11,
123
- mec=mask_color,
124
- mfc="None",
125
- mew=3.0,
126
- linestyle="none",
127
- marker=self._line.get_marker(),
128
- visible=line_data['mask']['visible'],
129
- )[0]
113
+ self._mask = self._ax.plot(line_data['mask']['x'], line_data['mask']['y'])[
114
+ 0
115
+ ]
130
116
 
131
- self.line_mask = sc.array(dims=['x'], values=~np.isnan(line_data['mask']['y']))
117
+ self._mask.update_from(self._line)
118
+ self._mask.set_color(mask_color)
119
+ self._mask.set_label(None)
120
+ self._mask.set_visible(line_data['mask']['visible'])
121
+ if self._line.get_marker().lower() != 'none':
122
+ self._mask.set(
123
+ mec=mask_color, mfc='None', mew=3.0, zorder=self._line.get_zorder() + 1
124
+ )
125
+ if self._line.get_linestyle().lower() != 'none':
126
+ self._mask.set(
127
+ lw=self._line.get_linewidth() * 3, zorder=self._line.get_zorder() - 1
128
+ )
132
129
 
133
130
  # Add error bars
134
131
  if errorbars and (line_data['stddevs'] is not None):
@@ -137,7 +134,7 @@ class Line:
137
134
  line_data['stddevs']['y'],
138
135
  yerr=line_data['stddevs']['e'],
139
136
  color=self._line.get_color(),
140
- zorder=10,
137
+ zorder=self._line.get_zorder(),
141
138
  fmt="none",
142
139
  )
143
140
 
@@ -153,7 +150,6 @@ class Line:
153
150
  check_ndim(new_values, ndim=1, origin='Line')
154
151
  self._data = new_values
155
152
  line_data = make_line_data(data=self._data, dim=self._dim)
156
- self.line_mask = sc.array(dims=['x'], values=~np.isnan(line_data['mask']['y']))
157
153
 
158
154
  self._line.set_data(line_data['values']['x'], line_data['values']['y'])
159
155
  self._mask.set_data(line_data['mask']['x'], line_data['mask']['y'])
@@ -60,7 +60,7 @@ class Line:
60
60
  artist_number: int = 0,
61
61
  errorbars: bool = True,
62
62
  mask_color: str = 'black',
63
- mode: str = 'markers',
63
+ mode: str | None = None,
64
64
  marker: str | None = None,
65
65
  **kwargs,
66
66
  ):
@@ -87,14 +87,17 @@ class Line:
87
87
  'color': default_colors[artist_number % len(default_colors)]
88
88
  }
89
89
  default_marker_style = {
90
- 'symbol': artist_number % 53
91
- } # Plotly has 52 marker styles
90
+ 'symbol': artist_number % 52 # Plotly has 52 marker styles
91
+ }
92
92
 
93
93
  line_shape = None
94
94
 
95
- if line_data["hist"]:
96
- line_shape = 'vh'
97
- mode = 'lines'
95
+ if mode is None:
96
+ if line_data["hist"]:
97
+ line_shape = 'vh'
98
+ mode = 'lines'
99
+ else:
100
+ mode = 'markers'
98
101
 
99
102
  marker_style = default_marker_style if marker is None else marker
100
103
  line_style = {**default_line_style, **line_args}
@@ -130,7 +133,7 @@ class Line:
130
133
  line_style['width'] *= 5
131
134
  else:
132
135
  line_style['width'] = 5
133
- if line_data["hist"]:
136
+ if 'lines' in mode:
134
137
  line_style['color'] = mask_color
135
138
 
136
139
  self._mask = go.Scatter(
@@ -149,7 +152,7 @@ class Line:
149
152
  # that ends up in the figure is a copy of the one above.
150
153
  # Plotly has no concept of zorder, so we need to add the traces in a specific
151
154
  # order
152
- if line_data["hist"]:
155
+ if 'lines' in mode:
153
156
  self._fig.add_trace(self._mask)
154
157
  self._mask = self._fig.data[-1]
155
158
  self._fig.add_trace(self._line)
@@ -165,9 +168,8 @@ class Line:
165
168
  self._error = self._fig.data[-1]
166
169
  self._fig.add_trace(self._mask)
167
170
  self._mask = self._fig.data[-1]
168
- self._line._plopp_id = self.uid
169
- self.line_mask = sc.array(dims=['x'], values=~np.isnan(line_data['mask']['y']))
170
171
 
172
+ self._line._plopp_id = self.uid
171
173
  self._mask._plopp_id = self.uid
172
174
  if self._error is not None:
173
175
  self._error._plopp_id = self.uid
@@ -184,7 +186,6 @@ class Line:
184
186
  check_ndim(new_values, ndim=1, origin='Line')
185
187
  self._data = new_values
186
188
  line_data = make_line_data(data=self._data, dim=self._dim)
187
- self.line_mask = sc.array(dims=['x'], values=~np.isnan(line_data['mask']['y']))
188
189
 
189
190
  with self._fig.batch_update():
190
191
  self._line.update(
@@ -85,6 +85,7 @@ def plot(
85
85
  """
86
86
 
87
87
  common_args = {
88
+ 'aspect': aspect,
88
89
  'grid': grid,
89
90
  'norm': norm,
90
91
  'scale': scale,
@@ -119,12 +120,7 @@ def plot(
119
120
  elif ndim == 2:
120
121
  if len(nodes) > 1:
121
122
  raise_multiple_inputs_for_2d_plot_error(origin='plot')
122
- return imagefigure(
123
- *nodes,
124
- aspect=aspect,
125
- cbar=cbar,
126
- **common_args,
127
- )
123
+ return imagefigure(*nodes, cbar=cbar, **common_args)
128
124
  else:
129
125
  raise ValueError(
130
126
  'The plot function can only plot 1d and 2d data, got input '
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plopp
3
- Version: 25.4.0
3
+ Version: 25.4.1
4
4
  Summary: Visualization library for Scipp
5
5
  Author: Scipp contributors
6
6
  License: BSD 3-Clause License
@@ -169,3 +169,45 @@ def test_line_color_with_errorbars():
169
169
  assert line.color == 'C1'
170
170
  assert line._line.get_color() == 'C1'
171
171
  assert to_hex(line._error.get_children()[0].get_color()) == to_hex('C1')
172
+
173
+
174
+ def test_kwarg_zorder():
175
+ line = Line(canvas=Canvas(), data=data_array(ndim=1), zorder=3)
176
+ assert line._line.get_zorder() == 3
177
+
178
+
179
+ def test_kwarg_zorder_masks():
180
+ line = Line(canvas=Canvas(), data=data_array(ndim=1, masks=True), zorder=5)
181
+ assert line._line.get_zorder() == 5
182
+ assert line._mask.get_zorder() > 5
183
+
184
+
185
+ def test_kwarg_zorder_binedges():
186
+ line = Line(canvas=Canvas(), data=data_array(ndim=1, binedges=True), zorder=7)
187
+ assert line._line.get_zorder() == 7
188
+
189
+
190
+ def test_kwarg_zorder_binedges_masks():
191
+ line = Line(
192
+ canvas=Canvas(), data=data_array(ndim=1, binedges=True, masks=True), zorder=9
193
+ )
194
+ assert line._line.get_zorder() == 9
195
+ assert line._mask.get_zorder() < 9
196
+
197
+
198
+ def test_kwarg_zorder_errorbars():
199
+ line = Line(canvas=Canvas(), data=data_array(ndim=1, variances=True), zorder=12)
200
+ assert line._line.get_zorder() == 12
201
+ for artist in line._error.get_children():
202
+ assert artist.get_zorder() == 12
203
+
204
+
205
+ def test_kwarg_zorder_binedges_errorbars():
206
+ line = Line(
207
+ canvas=Canvas(),
208
+ data=data_array(ndim=1, binedges=True, variances=True),
209
+ zorder=14,
210
+ )
211
+ assert line._line.get_zorder() == 14
212
+ for artist in line._error.get_children():
213
+ assert artist.get_zorder() == 14
@@ -193,3 +193,12 @@ def test_polar_axes_limits_small_range_fits_to_data():
193
193
  fig = pp.plot(da, ax=ax)
194
194
  assert fig.canvas.xmin > 0.0
195
195
  assert fig.canvas.xmax < 2 * np.pi
196
+
197
+
198
+ def test_aspect_ratio():
199
+ da = data_array(ndim=1)
200
+ fig = da.plot(aspect='equal')
201
+ assert fig.canvas.ax.get_aspect() == 1.0
202
+ da = data_array(ndim=2)
203
+ fig = da.plot(aspect='equal')
204
+ assert fig.canvas.ax.get_aspect() == 1.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes