plopp 25.9.0__tar.gz → 25.10.0__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 (240) hide show
  1. {plopp-25.9.0 → plopp-25.10.0}/PKG-INFO +1 -1
  2. {plopp-25.9.0 → plopp-25.10.0}/docs/customization/animations.ipynb +5 -4
  3. {plopp-25.9.0 → plopp-25.10.0}/docs/customization/tweaking-figures.ipynb +26 -61
  4. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/interactive-masking.ipynb +1 -1
  5. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/masking-a-range.ipynb +1 -1
  6. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/peeling-layers.ipynb +1 -1
  7. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/rectangle-selection.ipynb +1 -1
  8. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/streaming-plot.ipynb +1 -1
  9. {plopp-25.9.0 → plopp-25.10.0}/docs/getting-started/overview.ipynb +6 -20
  10. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/image-plot.ipynb +54 -15
  11. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/line-plot.ipynb +44 -46
  12. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/slicer-plot.ipynb +29 -3
  13. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/canvas.py +89 -8
  14. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/line.py +3 -1
  15. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/scatter.py +2 -2
  16. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/plotly/canvas.py +73 -8
  17. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/pythreejs/canvas.py +22 -0
  18. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/pythreejs/mesh3d.py +1 -0
  19. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/pythreejs/scatter3d.py +3 -0
  20. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/node_class.py +23 -0
  21. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/colormapper.py +153 -55
  22. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/graphicalview.py +70 -21
  23. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/plotting/common.py +71 -3
  24. plopp-25.10.0/src/plopp/plotting/inspector.py +219 -0
  25. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/plotting/mesh3d.py +49 -16
  26. plopp-25.10.0/src/plopp/plotting/plot.py +190 -0
  27. plopp-25.10.0/src/plopp/plotting/scatter.py +202 -0
  28. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/plotting/scatter3d.py +52 -17
  29. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/plotting/slicer.py +137 -40
  30. plopp-25.10.0/src/plopp/plotting/superplot.py +147 -0
  31. plopp-25.10.0/src/plopp/plotting/xyplot.py +144 -0
  32. plopp-25.10.0/src/plopp/utils/__init__.pyi +7 -0
  33. plopp-25.10.0/src/plopp/utils/arg_parse.py +24 -0
  34. plopp-25.9.0/src/plopp/utils.py → plopp-25.10.0/src/plopp/utils/deprecation.py +0 -3
  35. plopp-25.10.0/src/plopp/widgets/__init__.py +6 -0
  36. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/toolbar.py +2 -2
  37. {plopp-25.9.0 → plopp-25.10.0}/src/plopp.egg-info/PKG-INFO +1 -1
  38. {plopp-25.9.0 → plopp-25.10.0}/src/plopp.egg-info/SOURCES.txt +4 -1
  39. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/matplotlib/mpl_tiled_test.py +2 -2
  40. {plopp-25.9.0 → plopp-25.10.0}/tests/core/node_test.py +20 -0
  41. {plopp-25.9.0 → plopp-25.10.0}/tests/graphics/artists_test.py +38 -18
  42. {plopp-25.9.0 → plopp-25.10.0}/tests/graphics/canvas_test.py +4 -4
  43. {plopp-25.9.0 → plopp-25.10.0}/tests/graphics/colormapper_test.py +36 -4
  44. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/plot_1d_test.py +88 -0
  45. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/plot_2d_test.py +127 -0
  46. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/scatter_test.py +117 -2
  47. plopp-25.9.0/src/plopp/plotting/inspector.py +0 -115
  48. plopp-25.9.0/src/plopp/plotting/plot.py +0 -128
  49. plopp-25.9.0/src/plopp/plotting/scatter.py +0 -111
  50. plopp-25.9.0/src/plopp/plotting/superplot.py +0 -47
  51. plopp-25.9.0/src/plopp/plotting/xyplot.py +0 -61
  52. {plopp-25.9.0 → plopp-25.10.0}/.copier-answers.yml +0 -0
  53. {plopp-25.9.0 → plopp-25.10.0}/.github/dependabot.yml +0 -0
  54. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/ci.yml +0 -0
  55. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/docs.yml +0 -0
  56. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/nightly_at_main.yml +0 -0
  57. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/nightly_at_main_lower_bound.yml +0 -0
  58. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/nightly_at_release.yml +0 -0
  59. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/python-version-ci +0 -0
  60. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/release.yml +0 -0
  61. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/test.yml +0 -0
  62. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/unpinned.yml +0 -0
  63. {plopp-25.9.0 → plopp-25.10.0}/.github/workflows/weekly_windows_macos.yml +0 -0
  64. {plopp-25.9.0 → plopp-25.10.0}/.gitignore +0 -0
  65. {plopp-25.9.0 → plopp-25.10.0}/.pre-commit-config.yaml +0 -0
  66. {plopp-25.9.0 → plopp-25.10.0}/.python-version +0 -0
  67. {plopp-25.9.0 → plopp-25.10.0}/CODE_OF_CONDUCT.md +0 -0
  68. {plopp-25.9.0 → plopp-25.10.0}/CONTRIBUTING.md +0 -0
  69. {plopp-25.9.0 → plopp-25.10.0}/LICENSE +0 -0
  70. {plopp-25.9.0 → plopp-25.10.0}/MANIFEST.in +0 -0
  71. {plopp-25.9.0 → plopp-25.10.0}/README.md +0 -0
  72. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/anaconda-icon.js +0 -0
  73. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/circle-exclamation.svg +0 -0
  74. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/custom.css +0 -0
  75. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/customization/custom-interfaces.png +0 -0
  76. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/customization/graph-node-tips.png +0 -0
  77. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/customization/subplots.png +0 -0
  78. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/customization/tweaking-figures.png +0 -0
  79. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/favicon.ico +0 -0
  80. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/gallery/README.txt +0 -0
  81. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/gallery/peeling-layers-thumbnail.png +0 -0
  82. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/gallery/scatter3d-with-slider-thumbnail.png +0 -0
  83. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/gallery/scatter3d-with-threshold-thumbnail.png +0 -0
  84. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/logo-dark.svg +0 -0
  85. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/logo-large-dark.svg +0 -0
  86. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/logo-large.svg +0 -0
  87. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/logo.svg +0 -0
  88. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/plotting/image-plot.png +0 -0
  89. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/plotting/inspector-plot.png +0 -0
  90. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/plotting/line-plot.png +0 -0
  91. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/plotting/mesh3d-plot.png +0 -0
  92. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/plotting/scatter-plot.png +0 -0
  93. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/plotting/scatter3d-plot.png +0 -0
  94. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/plotting/slicer-plot.png +0 -0
  95. {plopp-25.9.0 → plopp-25.10.0}/docs/_static/plotting/super-plot.png +0 -0
  96. {plopp-25.9.0 → plopp-25.10.0}/docs/_templates/class-template.rst +0 -0
  97. {plopp-25.9.0 → plopp-25.10.0}/docs/_templates/doc_version.html +0 -0
  98. {plopp-25.9.0 → plopp-25.10.0}/docs/_templates/module-template.rst +0 -0
  99. {plopp-25.9.0 → plopp-25.10.0}/docs/_templates/scipp-class-template.rst +0 -0
  100. {plopp-25.9.0 → plopp-25.10.0}/docs/_templates/scipp-module-template.rst +0 -0
  101. {plopp-25.9.0 → plopp-25.10.0}/docs/about/index.md +0 -0
  102. {plopp-25.9.0 → plopp-25.10.0}/docs/api-reference/index.md +0 -0
  103. {plopp-25.9.0 → plopp-25.10.0}/docs/api-reference/matplotlib.md +0 -0
  104. {plopp-25.9.0 → plopp-25.10.0}/docs/api-reference/plotly.md +0 -0
  105. {plopp-25.9.0 → plopp-25.10.0}/docs/api-reference/pythreejs.md +0 -0
  106. {plopp-25.9.0 → plopp-25.10.0}/docs/conf.py +0 -0
  107. {plopp-25.9.0 → plopp-25.10.0}/docs/customization/custom-interfaces.ipynb +0 -0
  108. {plopp-25.9.0 → plopp-25.10.0}/docs/customization/graph-node-tips.ipynb +0 -0
  109. {plopp-25.9.0 → plopp-25.10.0}/docs/customization/index.md +0 -0
  110. {plopp-25.9.0 → plopp-25.10.0}/docs/customization/subplots.ipynb +0 -0
  111. {plopp-25.9.0 → plopp-25.10.0}/docs/developer/coding-conventions.md +0 -0
  112. {plopp-25.9.0 → plopp-25.10.0}/docs/developer/dependency-management.md +0 -0
  113. {plopp-25.9.0 → plopp-25.10.0}/docs/developer/getting-started.md +0 -0
  114. {plopp-25.9.0 → plopp-25.10.0}/docs/developer/index.md +0 -0
  115. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/index.ipynb +0 -0
  116. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/nyc-taxi.ipynb +0 -0
  117. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/polar-plots.ipynb +0 -0
  118. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/scatter3d-with-slider.ipynb +0 -0
  119. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/scatter3d-with-threshold.ipynb +0 -0
  120. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/tiled-random-samples.ipynb +0 -0
  121. {plopp-25.9.0 → plopp-25.10.0}/docs/gallery/updating-scatter.ipynb +0 -0
  122. {plopp-25.9.0 → plopp-25.10.0}/docs/getting-started/index.md +0 -0
  123. {plopp-25.9.0 → plopp-25.10.0}/docs/getting-started/installation.md +0 -0
  124. {plopp-25.9.0 → plopp-25.10.0}/docs/getting-started/numpy-pandas-xarray.ipynb +0 -0
  125. {plopp-25.9.0 → plopp-25.10.0}/docs/getting-started/saving-figures.ipynb +0 -0
  126. {plopp-25.9.0 → plopp-25.10.0}/docs/index.md +0 -0
  127. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/index.md +0 -0
  128. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/inspector-plot.ipynb +0 -0
  129. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/mesh3d-plot.ipynb +0 -0
  130. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/scatter-plot.ipynb +0 -0
  131. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/scatter3d-plot.ipynb +0 -0
  132. {plopp-25.9.0 → plopp-25.10.0}/docs/plotting/super-plot.ipynb +0 -0
  133. {plopp-25.9.0 → plopp-25.10.0}/pyproject.toml +0 -0
  134. {plopp-25.9.0 → plopp-25.10.0}/requirements/base.in +0 -0
  135. {plopp-25.9.0 → plopp-25.10.0}/requirements/base.txt +0 -0
  136. {plopp-25.9.0 → plopp-25.10.0}/requirements/basetest.in +0 -0
  137. {plopp-25.9.0 → plopp-25.10.0}/requirements/basetest.txt +0 -0
  138. {plopp-25.9.0 → plopp-25.10.0}/requirements/ci.in +0 -0
  139. {plopp-25.9.0 → plopp-25.10.0}/requirements/ci.txt +0 -0
  140. {plopp-25.9.0 → plopp-25.10.0}/requirements/dev.in +0 -0
  141. {plopp-25.9.0 → plopp-25.10.0}/requirements/dev.txt +0 -0
  142. {plopp-25.9.0 → plopp-25.10.0}/requirements/docs.in +0 -0
  143. {plopp-25.9.0 → plopp-25.10.0}/requirements/docs.txt +0 -0
  144. {plopp-25.9.0 → plopp-25.10.0}/requirements/make_base.py +0 -0
  145. {plopp-25.9.0 → plopp-25.10.0}/requirements/mini.in +0 -0
  146. {plopp-25.9.0 → plopp-25.10.0}/requirements/mini.txt +0 -0
  147. {plopp-25.9.0 → plopp-25.10.0}/requirements/mypy.in +0 -0
  148. {plopp-25.9.0 → plopp-25.10.0}/requirements/mypy.txt +0 -0
  149. {plopp-25.9.0 → plopp-25.10.0}/requirements/nightly.in +0 -0
  150. {plopp-25.9.0 → plopp-25.10.0}/requirements/nightly.txt +0 -0
  151. {plopp-25.9.0 → plopp-25.10.0}/requirements/noplotly.in +0 -0
  152. {plopp-25.9.0 → plopp-25.10.0}/requirements/noplotly.txt +0 -0
  153. {plopp-25.9.0 → plopp-25.10.0}/requirements/static.in +0 -0
  154. {plopp-25.9.0 → plopp-25.10.0}/requirements/static.txt +0 -0
  155. {plopp-25.9.0 → plopp-25.10.0}/requirements/test.in +0 -0
  156. {plopp-25.9.0 → plopp-25.10.0}/requirements/test.txt +0 -0
  157. {plopp-25.9.0 → plopp-25.10.0}/requirements/wheels.in +0 -0
  158. {plopp-25.9.0 → plopp-25.10.0}/requirements/wheels.txt +0 -0
  159. {plopp-25.9.0 → plopp-25.10.0}/resources/logo-plopp-2022.svg +0 -0
  160. {plopp-25.9.0 → plopp-25.10.0}/setup.cfg +0 -0
  161. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/__init__.py +0 -0
  162. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/__init__.py +0 -0
  163. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/common.py +0 -0
  164. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/__init__.py +0 -0
  165. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/fast_image.py +0 -0
  166. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/figure.py +0 -0
  167. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/image.py +0 -0
  168. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/mesh_image.py +0 -0
  169. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/tiled.py +0 -0
  170. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/matplotlib/utils.py +0 -0
  171. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/plotly/__init__.py +0 -0
  172. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/plotly/figure.py +0 -0
  173. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/plotly/line.py +0 -0
  174. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/pythreejs/__init__.py +0 -0
  175. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/pythreejs/figure.py +0 -0
  176. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/backends/pythreejs/outline.py +0 -0
  177. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/__init__.py +0 -0
  178. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/__init__.pyi +0 -0
  179. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/graph.py +0 -0
  180. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/helpers.py +0 -0
  181. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/limits.py +0 -0
  182. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/typing.py +0 -0
  183. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/utils.py +0 -0
  184. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/core/view.py +0 -0
  185. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/data/__init__.py +0 -0
  186. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/data/examples.py +0 -0
  187. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/data/factory.py +0 -0
  188. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/data/testing.py +0 -0
  189. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/__init__.py +0 -0
  190. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/__init__.pyi +0 -0
  191. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/basefig.py +0 -0
  192. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/bbox.py +0 -0
  193. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/camera.py +0 -0
  194. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/figures.py +0 -0
  195. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/graphics/tiled.py +0 -0
  196. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/plotting/__init__.py +0 -0
  197. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/plotting/__init__.pyi +0 -0
  198. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/py.typed +0 -0
  199. {plopp-25.9.0/src/plopp/widgets → plopp-25.10.0/src/plopp/utils}/__init__.py +0 -0
  200. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/__init__.pyi +0 -0
  201. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/box.py +0 -0
  202. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/checkboxes.py +0 -0
  203. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/clip3d.py +0 -0
  204. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/debounce.py +0 -0
  205. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/drawing.py +0 -0
  206. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/linesave.py +0 -0
  207. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/slice.py +0 -0
  208. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/style.py +0 -0
  209. {plopp-25.9.0 → plopp-25.10.0}/src/plopp/widgets/tools.py +0 -0
  210. {plopp-25.9.0 → plopp-25.10.0}/src/plopp.egg-info/dependency_links.txt +0 -0
  211. {plopp-25.9.0 → plopp-25.10.0}/src/plopp.egg-info/requires.txt +0 -0
  212. {plopp-25.9.0 → plopp-25.10.0}/src/plopp.egg-info/top_level.txt +0 -0
  213. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/matplotlib/mpl_image_test.py +0 -0
  214. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/matplotlib/mpl_line_test.py +0 -0
  215. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/matplotlib/mpl_plot_test.py +0 -0
  216. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/matplotlib/mpl_scatter_test.py +0 -0
  217. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/plotly/conftest.py +0 -0
  218. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/plotly/plotly_line_test.py +0 -0
  219. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/pythreejs/pythreejs_canvas_test.py +0 -0
  220. {plopp-25.9.0 → plopp-25.10.0}/tests/backends/pythreejs/pythreejs_scatter3d_test.py +0 -0
  221. {plopp-25.9.0 → plopp-25.10.0}/tests/conftest.py +0 -0
  222. {plopp-25.9.0 → plopp-25.10.0}/tests/core/graph_test.py +0 -0
  223. {plopp-25.9.0 → plopp-25.10.0}/tests/core/limits_test.py +0 -0
  224. {plopp-25.9.0 → plopp-25.10.0}/tests/core/utils_test.py +0 -0
  225. {plopp-25.9.0 → plopp-25.10.0}/tests/graphics/figures_test.py +0 -0
  226. {plopp-25.9.0 → plopp-25.10.0}/tests/high_level_test.py +0 -0
  227. {plopp-25.9.0 → plopp-25.10.0}/tests/minimal_plot_test.py +0 -0
  228. {plopp-25.9.0 → plopp-25.10.0}/tests/package_test.py +0 -0
  229. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/common_test.py +0 -0
  230. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/inspector_test.py +0 -0
  231. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/mesh3d_test.py +0 -0
  232. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/scatter3d_test.py +0 -0
  233. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/slicer_test.py +0 -0
  234. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/superplot_test.py +0 -0
  235. {plopp-25.9.0 → plopp-25.10.0}/tests/plotting/xyplot_test.py +0 -0
  236. {plopp-25.9.0 → plopp-25.10.0}/tests/widgets/box_test.py +0 -0
  237. {plopp-25.9.0 → plopp-25.10.0}/tests/widgets/checkboxes_test.py +0 -0
  238. {plopp-25.9.0 → plopp-25.10.0}/tests/widgets/clip3d_test.py +0 -0
  239. {plopp-25.9.0 → plopp-25.10.0}/tests/widgets/slice_test.py +0 -0
  240. {plopp-25.9.0 → plopp-25.10.0}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plopp
3
- Version: 25.9.0
3
+ Version: 25.10.0
4
4
  Summary: Visualization library for Scipp
5
5
  Author: Scipp contributors
6
6
  License-Expression: BSD-3-Clause
@@ -41,7 +41,7 @@
41
41
  "outputs": [],
42
42
  "source": [
43
43
  "da = three_bands()\n",
44
- "da.plot(norm=\"log\")"
44
+ "da.plot(logc=True)"
45
45
  ]
46
46
  },
47
47
  {
@@ -73,7 +73,7 @@
73
73
  "# Here, 'y' is the dimension you want to slice\n",
74
74
  "slice_node = pp.Node(lambda da, ind: da[\"y\", ind], da=data_node, ind=index_node)\n",
75
75
  "\n",
76
- "f = pp.linefigure(slice_node, vmin=-1, vmax=200)\n",
76
+ "f = pp.linefigure(slice_node, ymin=-1, ymax=200)\n",
77
77
  "\n",
78
78
  "\n",
79
79
  "def update(frame):\n",
@@ -164,7 +164,7 @@
164
164
  "da = three_bands(npeaks=20, per_peak=500, spread=30.0)\n",
165
165
  "data_node = pp.Node(da)\n",
166
166
  "\n",
167
- "f = pp.imagefigure(data_node, cbar=True, vmin=30, vmax=400, norm=\"log\")\n",
167
+ "f = pp.imagefigure(data_node, cbar=True, cmin=30, cmax=400, logc=True)\n",
168
168
  "\n",
169
169
  "\n",
170
170
  "def update(frame):\n",
@@ -233,7 +233,8 @@
233
233
  "mimetype": "text/x-python",
234
234
  "name": "python",
235
235
  "nbconvert_exporter": "python",
236
- "pygments_lexer": "ipython3"
236
+ "pygments_lexer": "ipython3",
237
+ "version": "3.12.7"
237
238
  }
238
239
  },
239
240
  "nbformat": 4,
@@ -77,8 +77,7 @@
77
77
  },
78
78
  "outputs": [],
79
79
  "source": [
80
- "p = pp.plot(da)\n",
81
- "p"
80
+ "pp.plot(da)"
82
81
  ]
83
82
  },
84
83
  {
@@ -92,7 +91,7 @@
92
91
  "tags": []
93
92
  },
94
93
  "source": [
95
- "To change the label of the vertical axis, use the `.canvas.ylabel` property on the plot object:"
94
+ "To change the label of the horizontal or vertical axes, use the `xlabel/ylabel` arguments:"
96
95
  ]
97
96
  },
98
97
  {
@@ -108,8 +107,7 @@
108
107
  },
109
108
  "outputs": [],
110
109
  "source": [
111
- "p.canvas.ylabel = 'Phase of sound wave'\n",
112
- "p"
110
+ "pp.plot(da, xlabel=\"Time (milliseconds)\", ylabel=\"Phase of sound wave\")"
113
111
  ]
114
112
  },
115
113
  {
@@ -145,6 +143,7 @@
145
143
  ]
146
144
  },
147
145
  {
146
+ "attachments": {},
148
147
  "cell_type": "markdown",
149
148
  "id": "9",
150
149
  "metadata": {
@@ -155,12 +154,10 @@
155
154
  "tags": []
156
155
  },
157
156
  "source": [
158
- "### Setting the axis range\n",
159
- "\n",
160
- "#### Vertical axis\n",
157
+ "### Setting the axes ranges\n",
161
158
  "\n",
162
- "Changing the range of the vertical axis is done using the `vmin` and `vmax` arguments\n",
163
- "(note that if only one of the two is given, then the other will be automatically determined from the data plotted)."
159
+ "Changing the range of the horizontal or vertical axes is done using the `xmin/xmax` and `ymax/ymax` arguments, respectively.\n",
160
+ "If only the `min` or `max` is given, then the other will be automatically determined from the data plotted."
164
161
  ]
165
162
  },
166
163
  {
@@ -170,7 +167,12 @@
170
167
  "metadata": {},
171
168
  "outputs": [],
172
169
  "source": [
173
- "pp.plot(da, vmin=sc.scalar(-0.5, unit='m/s'), vmax=sc.scalar(1.5, unit='m/s'))"
170
+ "pp.plot(\n",
171
+ " da,\n",
172
+ " xmin=sc.scalar(10, unit='m'),\n",
173
+ " ymin=sc.scalar(-0.5, unit='m/s'),\n",
174
+ " ymax=sc.scalar(1.5, unit='m/s'),\n",
175
+ ")"
174
176
  ]
175
177
  },
176
178
  {
@@ -185,11 +187,7 @@
185
187
  },
186
188
  "source": [
187
189
  "Note that if the unit in the supplied limits is not identical to the data units, an on-the-fly conversion is attempted.\n",
188
- "It is also possible to omit the units altogether, in which case it is assumed the unit is the same as the data unit.\n",
189
- "\n",
190
- "#### Horizontal axis\n",
191
- "\n",
192
- "The easiest way to set the range of the horizontal axis is to slice the data before plotting:"
190
+ "It is also possible to omit the units altogether, in which case it is assumed the unit is the same as the data unit:"
193
191
  ]
194
192
  },
195
193
  {
@@ -205,34 +203,13 @@
205
203
  },
206
204
  "outputs": [],
207
205
  "source": [
208
- "pp.plot(da[10:40])"
206
+ "pp.plot(da, xmin=10, xmax=45)"
209
207
  ]
210
208
  },
211
209
  {
210
+ "attachments": {},
212
211
  "cell_type": "markdown",
213
212
  "id": "13",
214
- "metadata": {},
215
- "source": [
216
- "Note that this will add some padding around the plotted data points.\n",
217
- "\n",
218
- "If you wish to have precise control over the limits, you can use the lower-level `canvas.xrange` property:"
219
- ]
220
- },
221
- {
222
- "cell_type": "code",
223
- "execution_count": null,
224
- "id": "14",
225
- "metadata": {},
226
- "outputs": [],
227
- "source": [
228
- "p = da.plot()\n",
229
- "p.canvas.xrange = [10, 40]\n",
230
- "p"
231
- ]
232
- },
233
- {
234
- "cell_type": "markdown",
235
- "id": "15",
236
213
  "metadata": {
237
214
  "editable": true,
238
215
  "slideshow": {
@@ -241,34 +218,21 @@
241
218
  "tags": []
242
219
  },
243
220
  "source": [
244
- "Note that `camvas.yrange` is also available, and is equivalent to using the `vmin` and `vmax` arguments.\n",
245
- "\n",
246
221
  "## Further modifications\n",
247
222
  "\n",
248
223
  "Instead of providing keyword arguments for tweaking every aspect of the figures,\n",
249
224
  "we provide accessors to the underlying Matplotlib `Figure` and `Axes` objects,\n",
250
- "that can then directly be used to make the required modifications."
251
- ]
252
- },
253
- {
254
- "cell_type": "markdown",
255
- "id": "16",
256
- "metadata": {
257
- "editable": true,
258
- "slideshow": {
259
- "slide_type": ""
260
- },
261
- "tags": []
262
- },
263
- "source": [
225
+ "that can then directly be used to make the required modifications.\n",
226
+ "\n",
264
227
  "### Tick locations and labels\n",
228
+ "\n",
265
229
  "To change the location of the ticks, as well as their labels, we directly access the Matplotlib axes via the `.ax` property of the figure:"
266
230
  ]
267
231
  },
268
232
  {
269
233
  "cell_type": "code",
270
234
  "execution_count": null,
271
- "id": "17",
235
+ "id": "14",
272
236
  "metadata": {
273
237
  "editable": true,
274
238
  "slideshow": {
@@ -286,7 +250,7 @@
286
250
  },
287
251
  {
288
252
  "cell_type": "markdown",
289
- "id": "18",
253
+ "id": "15",
290
254
  "metadata": {},
291
255
  "source": [
292
256
  "### Axes placement\n",
@@ -298,7 +262,7 @@
298
262
  {
299
263
  "cell_type": "code",
300
264
  "execution_count": null,
301
- "id": "19",
265
+ "id": "16",
302
266
  "metadata": {},
303
267
  "outputs": [],
304
268
  "source": [
@@ -319,7 +283,7 @@
319
283
  },
320
284
  {
321
285
  "cell_type": "markdown",
322
- "id": "20",
286
+ "id": "17",
323
287
  "metadata": {},
324
288
  "source": [
325
289
  "It is also possible to control the placement of the colorbar for image plots using the `cax` argument:"
@@ -328,7 +292,7 @@
328
292
  {
329
293
  "cell_type": "code",
330
294
  "execution_count": null,
331
- "id": "21",
295
+ "id": "18",
332
296
  "metadata": {},
333
297
  "outputs": [],
334
298
  "source": [
@@ -357,7 +321,8 @@
357
321
  "mimetype": "text/x-python",
358
322
  "name": "python",
359
323
  "nbconvert_exporter": "python",
360
- "pygments_lexer": "ipython3"
324
+ "pygments_lexer": "ipython3",
325
+ "version": "3.12.7"
361
326
  }
362
327
  },
363
328
  "nbformat": 4,
@@ -181,7 +181,7 @@
181
181
  "\n",
182
182
  "masking_node = pp.Node(apply_masks, data_node)\n",
183
183
  "\n",
184
- "fig = pp.imagefigure(masking_node, norm='log')\n",
184
+ "fig = pp.imagefigure(masking_node, logc=True)\n",
185
185
  "\n",
186
186
  "r = RectangleTool(\n",
187
187
  " figure=fig, input_node=data_node, func=define_mask, destination=masking_node\n",
@@ -123,7 +123,7 @@
123
123
  "sum_node = pp.Node(sc.sum, mask_node, dim=ydim)\n",
124
124
  "\n",
125
125
  "# Make figures\n",
126
- "image = pp.imagefigure(mask_node, norm='log')\n",
126
+ "image = pp.imagefigure(mask_node, logc=True)\n",
127
127
  "lines = pp.linefigure(sum_node, grid=True, ls='solid', marker='')\n",
128
128
  "ipw.VBox([slider, image, lines])"
129
129
  ]
@@ -103,7 +103,7 @@
103
103
  "b = da[(da.data > sc.scalar(0.002)) & (da.data < sc.scalar(0.005))]\n",
104
104
  "\n",
105
105
  "# Display both on the same scatter plot\n",
106
- "p = pp.scatter3d({'a': a, 'b': b}, pos='position', norm='log', cbar=True)\n",
106
+ "p = pp.scatter3d({'a': a, 'b': b}, pos='position', logc=True, cbar=True)\n",
107
107
  "\n",
108
108
  "# Extract the point clouds from the final plot and set a lower opacity on the second point cloud\n",
109
109
  "clouds = list(p.artists.values())\n",
@@ -154,7 +154,7 @@
154
154
  "\n",
155
155
  "data_node = pp.Node(da)\n",
156
156
  "\n",
157
- "f2d = pp.imagefigure(data_node, norm='log')\n",
157
+ "f2d = pp.imagefigure(data_node, logc=True)\n",
158
158
  "f1d = pp.linefigure()\n",
159
159
  "\n",
160
160
  "r = RectangleTool(figure=f2d, input_node=data_node, func=vertical_sum, destination=f1d)\n",
@@ -101,7 +101,7 @@
101
101
  "stream_node = pp.Node(data, iteration=play_node)\n",
102
102
  "\n",
103
103
  "# Plot on a figure\n",
104
- "fig = pp.imagefigure(stream_node, norm=\"log\", cbar=True)"
104
+ "fig = pp.imagefigure(stream_node, logc=True, cbar=True)"
105
105
  ]
106
106
  },
107
107
  {
@@ -251,8 +251,7 @@
251
251
  "source": [
252
252
  "## Logarithmic scale\n",
253
253
  "\n",
254
- "Data can be plotted on a logarithmic scale on one or both axes.\n",
255
- "For the independent axis (the coordinate axis, i.e., the horizontal axis) this can be set using the `scale` option:"
254
+ "Data can be plotted on a logarithmic scale on one or both axes using the `logx` and `logy` arguments:"
256
255
  ]
257
256
  },
258
257
  {
@@ -261,7 +260,7 @@
261
260
  "metadata": {},
262
261
  "outputs": [],
263
262
  "source": [
264
- "da1.plot(scale={'x': 'log'})"
263
+ "da1.plot(logx=True)"
265
264
  ]
266
265
  },
267
266
  {
@@ -270,21 +269,7 @@
270
269
  "metadata": {},
271
270
  "outputs": [],
272
271
  "source": [
273
- "da.plot(scale={'x': 'log', 'time': 'log'})"
274
- ]
275
- },
276
- {
277
- "cell_type": "markdown",
278
- "metadata": {},
279
- "source": [
280
- "Note the the keys in the `scale` dict are dimension labels and *not* \"x\" and \"y\" as Matplotlib would refer to its axes."
281
- ]
282
- },
283
- {
284
- "cell_type": "markdown",
285
- "metadata": {},
286
- "source": [
287
- "For the dependent axis (the data axis, i.e., vertical axis) use the `norm` option:"
272
+ "(100 * (da1 - da1.min())).plot(logy=True)"
288
273
  ]
289
274
  },
290
275
  {
@@ -293,7 +278,7 @@
293
278
  "metadata": {},
294
279
  "outputs": [],
295
280
  "source": [
296
- "(100 * (da1 - da1.min())).plot(norm='log')"
281
+ "da.plot(logx=True, logy=True)"
297
282
  ]
298
283
  }
299
284
  ],
@@ -312,7 +297,8 @@
312
297
  "mimetype": "text/x-python",
313
298
  "name": "python",
314
299
  "nbconvert_exporter": "python",
315
- "pygments_lexer": "ipython3"
300
+ "pygments_lexer": "ipython3",
301
+ "version": "3.12.7"
316
302
  }
317
303
  },
318
304
  "nbformat": 4,
@@ -91,7 +91,7 @@
91
91
  "metadata": {},
92
92
  "outputs": [],
93
93
  "source": [
94
- "da.plot(norm='log')"
94
+ "da.plot(logc=True)"
95
95
  ]
96
96
  },
97
97
  {
@@ -109,7 +109,7 @@
109
109
  "metadata": {},
110
110
  "outputs": [],
111
111
  "source": [
112
- "da.plot(scale={'x': 'log'})"
112
+ "da.plot(logx=True)"
113
113
  ]
114
114
  },
115
115
  {
@@ -117,9 +117,7 @@
117
117
  "id": "12",
118
118
  "metadata": {},
119
119
  "source": [
120
- "## Setting the axes limits\n",
121
- "\n",
122
- "Setting the axes limits is done by simply slicing the data before plotting it:"
120
+ "## Setting the axes limits"
123
121
  ]
124
122
  },
125
123
  {
@@ -129,7 +127,7 @@
129
127
  "metadata": {},
130
128
  "outputs": [],
131
129
  "source": [
132
- "pp.plot(da['x', :40]['y', 10:30])"
130
+ "pp.plot(da, xmax=sc.scalar(25, unit='m'))"
133
131
  ]
134
132
  },
135
133
  {
@@ -137,7 +135,8 @@
137
135
  "id": "14",
138
136
  "metadata": {},
139
137
  "source": [
140
- "## Setting the colorscale limits"
138
+ "Note that if the unit in the supplied limits is not identical to the data units, an on-the-fly conversion is attempted.\n",
139
+ "It is also possible to omit the units altogether, in which case it is assumed the unit is the same as the data unit."
141
140
  ]
142
141
  },
143
142
  {
@@ -147,7 +146,7 @@
147
146
  "metadata": {},
148
147
  "outputs": [],
149
148
  "source": [
150
- "da.plot(vmin=sc.scalar(0, unit='m/s'), vmax=sc.scalar(0.5, unit='m/s'))"
149
+ "pp.plot(da, xmax=25, ymin=10, ymax=30)"
151
150
  ]
152
151
  },
153
152
  {
@@ -155,8 +154,9 @@
155
154
  "id": "16",
156
155
  "metadata": {},
157
156
  "source": [
158
- "Note that if the unit in the supplied limits is not identical to the data units, an on-the-fly conversion is attempted.\n",
159
- "It is also possible to omit the units altogether, in which case it is assumed the unit is the same as the data unit."
157
+ "## Setting the colorscale limits\n",
158
+ "\n",
159
+ "Similarly to the axes limits, the colorscale limits are controlled via the `cmin/cmax` arguments:"
160
160
  ]
161
161
  },
162
162
  {
@@ -166,7 +166,7 @@
166
166
  "metadata": {},
167
167
  "outputs": [],
168
168
  "source": [
169
- "da.plot(vmin=0, vmax=0.5)"
169
+ "da.plot(cmin=sc.scalar(0, unit='m/s'), cmax=0.5)"
170
170
  ]
171
171
  },
172
172
  {
@@ -174,7 +174,9 @@
174
174
  "id": "18",
175
175
  "metadata": {},
176
176
  "source": [
177
- "## Masks on images"
177
+ "## Masks on images\n",
178
+ "\n",
179
+ "The masked data are by default represented using a grayscale colormap:"
178
180
  ]
179
181
  },
180
182
  {
@@ -194,6 +196,42 @@
194
196
  "cell_type": "markdown",
195
197
  "id": "20",
196
198
  "metadata": {},
199
+ "source": [
200
+ "The colormap for the masks can be changed using the `mask_cmap` argument:"
201
+ ]
202
+ },
203
+ {
204
+ "cell_type": "code",
205
+ "execution_count": null,
206
+ "id": "21",
207
+ "metadata": {},
208
+ "outputs": [],
209
+ "source": [
210
+ "da.plot(mask_cmap='hot')"
211
+ ]
212
+ },
213
+ {
214
+ "cell_type": "markdown",
215
+ "id": "22",
216
+ "metadata": {},
217
+ "source": [
218
+ "Masks can also be a solid color:"
219
+ ]
220
+ },
221
+ {
222
+ "cell_type": "code",
223
+ "execution_count": null,
224
+ "id": "23",
225
+ "metadata": {},
226
+ "outputs": [],
227
+ "source": [
228
+ "da.plot(mask_color='magenta')"
229
+ ]
230
+ },
231
+ {
232
+ "cell_type": "markdown",
233
+ "id": "24",
234
+ "metadata": {},
197
235
  "source": [
198
236
  "## Using a non-dimension coordinate\n",
199
237
  "\n",
@@ -204,7 +242,7 @@
204
242
  {
205
243
  "cell_type": "code",
206
244
  "execution_count": null,
207
- "id": "21",
245
+ "id": "25",
208
246
  "metadata": {},
209
247
  "outputs": [],
210
248
  "source": [
@@ -216,7 +254,7 @@
216
254
  },
217
255
  {
218
256
  "cell_type": "markdown",
219
- "id": "22",
257
+ "id": "26",
220
258
  "metadata": {},
221
259
  "source": [
222
260
  "Note that if no coordinate of name `'x'` exists, a dummy one will be generated using `scipp.arange`."
@@ -238,7 +276,8 @@
238
276
  "mimetype": "text/x-python",
239
277
  "name": "python",
240
278
  "nbconvert_exporter": "python",
241
- "pygments_lexer": "ipython3"
279
+ "pygments_lexer": "ipython3",
280
+ "version": "3.12.7"
242
281
  }
243
282
  },
244
283
  "nbformat": 4,