PlotPy 2.7.2__tar.gz → 2.7.3__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 (524) hide show
  1. {plotpy-2.7.2 → plotpy-2.7.3}/CHANGELOG.md +18 -0
  2. {plotpy-2.7.2/PlotPy.egg-info → plotpy-2.7.3}/PKG-INFO +3 -2
  3. {plotpy-2.7.2 → plotpy-2.7.3/PlotPy.egg-info}/PKG-INFO +3 -2
  4. {plotpy-2.7.2 → plotpy-2.7.3}/PlotPy.egg-info/SOURCES.txt +4 -4
  5. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/__init__.py +1 -1
  6. plotpy-2.7.3/plotpy/data/icons/select.svg +49 -0
  7. plotpy-2.7.3/plotpy/data/icons/select_area.svg +63 -0
  8. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/image/base.py +27 -1
  9. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/image/filter.py +1 -1
  10. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/image/image_items.py +10 -0
  11. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/image/misc.py +6 -2
  12. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/image/transform.py +2 -0
  13. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/plot/manager.py +74 -89
  14. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_fit.py +2 -2
  15. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_mandelbrot.py +4 -3
  16. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_dotarraydemo.py +2 -0
  17. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/plot.py +1 -1
  18. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/selection.py +1 -1
  19. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/fit.py +7 -7
  20. {plotpy-2.7.2 → plotpy-2.7.3}/src/histogram2d.c +149 -149
  21. {plotpy-2.7.2 → plotpy-2.7.3}/src/mandelbrot.c +149 -149
  22. plotpy-2.7.2/plotpy/data/icons/rectangular_select.png +0 -0
  23. plotpy-2.7.2/plotpy/data/icons/selection.png +0 -0
  24. {plotpy-2.7.2 → plotpy-2.7.3}/LICENSE +0 -0
  25. {plotpy-2.7.2 → plotpy-2.7.3}/MANIFEST.in +0 -0
  26. {plotpy-2.7.2 → plotpy-2.7.3}/PlotPy.egg-info/dependency_links.txt +0 -0
  27. {plotpy-2.7.2 → plotpy-2.7.3}/PlotPy.egg-info/entry_points.txt +0 -0
  28. {plotpy-2.7.2 → plotpy-2.7.3}/PlotPy.egg-info/requires.txt +0 -0
  29. {plotpy-2.7.2 → plotpy-2.7.3}/PlotPy.egg-info/top_level.txt +0 -0
  30. {plotpy-2.7.2 → plotpy-2.7.3}/README.md +0 -0
  31. {plotpy-2.7.2 → plotpy-2.7.3}/colormaps/README.md +0 -0
  32. {plotpy-2.7.2 → plotpy-2.7.3}/colormaps/_cm.py +0 -0
  33. {plotpy-2.7.2 → plotpy-2.7.3}/colormaps/colormap.py +0 -0
  34. {plotpy-2.7.2 → plotpy-2.7.3}/colormaps/matplotlib_cmaps.py +0 -0
  35. {plotpy-2.7.2 → plotpy-2.7.3}/doc/_static/favicon.ico +0 -0
  36. {plotpy-2.7.2 → plotpy-2.7.3}/doc/changelog.rst +0 -0
  37. {plotpy-2.7.2 → plotpy-2.7.3}/doc/conf.py +0 -0
  38. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/build.rst +0 -0
  39. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/contribute.rst +0 -0
  40. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/guiqwt_to_plotpy.csv +0 -0
  41. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/guiqwt_to_plotpy.rst +0 -0
  42. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/index.rst +0 -0
  43. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/platforms.rst +0 -0
  44. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/v1_to_guidata_v3.csv +0 -0
  45. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/v1_to_v2.csv +0 -0
  46. {plotpy-2.7.2 → plotpy-2.7.3}/doc/dev/v1_to_v2.rst +0 -0
  47. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/colormapmanager.rst +0 -0
  48. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/events.rst +0 -0
  49. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/fit.rst +0 -0
  50. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/fliprotate.rst +0 -0
  51. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/imagefile.rst +0 -0
  52. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/index.rst +0 -0
  53. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/io.rst +0 -0
  54. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/items/builder.rst +0 -0
  55. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/items/examples.rst +0 -0
  56. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/items/index.rst +0 -0
  57. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/items/overview.rst +0 -0
  58. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/items/reference.rst +0 -0
  59. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/mathutils/colormaps.rst +0 -0
  60. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/mathutils/geometry.rst +0 -0
  61. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/mathutils/index.rst +0 -0
  62. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/mathutils/scaler.rst +0 -0
  63. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/panels/index.rst +0 -0
  64. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/panels/overview.rst +0 -0
  65. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/panels/reference.rst +0 -0
  66. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/plot/examples.rst +0 -0
  67. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/plot/index.rst +0 -0
  68. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/plot/overview.rst +0 -0
  69. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/plot/reference.rst +0 -0
  70. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/pyplot.rst +0 -0
  71. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/resizedialog.rst +0 -0
  72. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/rotatecrop.rst +0 -0
  73. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/selectdialog.rst +0 -0
  74. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/signals.rst +0 -0
  75. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/styles/index.rst +0 -0
  76. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/styles/overview.rst +0 -0
  77. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/styles/reference.rst +0 -0
  78. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/tools/examples.rst +0 -0
  79. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/tools/index.rst +0 -0
  80. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/tools/overview.rst +0 -0
  81. {plotpy-2.7.2 → plotpy-2.7.3}/doc/features/tools/reference.rst +0 -0
  82. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/my_plot_manager.png +0 -0
  83. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/my_plot_manager.svg +0 -0
  84. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/panorama-vertical.png +0 -0
  85. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/panorama-vertical.svg +0 -0
  86. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/panorama.png +0 -0
  87. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/panorama.svg +0 -0
  88. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/plot_widgets.png +0 -0
  89. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/plot_widgets.svg +0 -0
  90. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/plotpy-banner.png +0 -0
  91. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/plotpy-vertical.png +0 -0
  92. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/__init__.png +0 -0
  93. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/computations.png +0 -0
  94. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/contrast.png +0 -0
  95. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/cross_section.png +0 -0
  96. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/cross_section2.png +0 -0
  97. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/dotarraydemo.png +0 -0
  98. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/filtertest1.png +0 -0
  99. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/filtertest2.png +0 -0
  100. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/fit.png +0 -0
  101. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/get_point.png +0 -0
  102. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/hist2d.png +0 -0
  103. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/image_plot_tools.png +0 -0
  104. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/imagefilter.png +0 -0
  105. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/imagesuperp.png +0 -0
  106. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/imagexy.png +0 -0
  107. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/manager.png +0 -0
  108. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/mandelbrot.png +0 -0
  109. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/pcolor.png +0 -0
  110. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/plot.png +0 -0
  111. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/simple_dialog.png +0 -0
  112. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/simple_window.png +0 -0
  113. {plotpy-2.7.2 → plotpy-2.7.3}/doc/images/screenshots/transform.png +0 -0
  114. {plotpy-2.7.2 → plotpy-2.7.3}/doc/index.rst +0 -0
  115. {plotpy-2.7.2 → plotpy-2.7.3}/doc/intro/examples.rst +0 -0
  116. {plotpy-2.7.2 → plotpy-2.7.3}/doc/intro/index.rst +0 -0
  117. {plotpy-2.7.2 → plotpy-2.7.3}/doc/intro/installation.rst +0 -0
  118. {plotpy-2.7.2 → plotpy-2.7.3}/doc/intro/licenses.rst +0 -0
  119. {plotpy-2.7.2 → plotpy-2.7.3}/doc/intro/motivation.rst +0 -0
  120. {plotpy-2.7.2 → plotpy-2.7.3}/doc/intro/overview.rst +0 -0
  121. {plotpy-2.7.2 → plotpy-2.7.3}/doc/requirements.rst +0 -0
  122. {plotpy-2.7.2 → plotpy-2.7.3}/doc/update_requirements.py +0 -0
  123. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/builder/__init__.py +0 -0
  124. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/builder/annotation.py +0 -0
  125. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/builder/curvemarker.py +0 -0
  126. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/builder/image.py +0 -0
  127. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/builder/label.py +0 -0
  128. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/builder/plot.py +0 -0
  129. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/builder/shape.py +0 -0
  130. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/config.py +0 -0
  131. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/constants.py +0 -0
  132. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/coords.py +0 -0
  133. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/colormaps_default.json +0 -0
  134. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/apply.png +0 -0
  135. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/arredit.png +0 -0
  136. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/arrow_down.png +0 -0
  137. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/arrow_up.png +0 -0
  138. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/autorefresh.png +0 -0
  139. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/autoscale.png +0 -0
  140. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/axes.png +0 -0
  141. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/busy.png +0 -0
  142. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/cell_edit.png +0 -0
  143. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/center.png +0 -0
  144. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/cmap_edit.png +0 -0
  145. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/contrast.png +0 -0
  146. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/copy.png +0 -0
  147. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/copytoclipboard.png +0 -0
  148. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/csapplylut.png +0 -0
  149. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/csautoscale.png +0 -0
  150. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/csection.png +0 -0
  151. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/csection_a.png +0 -0
  152. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/csection_line.png +0 -0
  153. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/csection_oblique.png +0 -0
  154. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/csperimage.png +0 -0
  155. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/curve_downsample.png +0 -0
  156. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/curvestyles/dots.png +0 -0
  157. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/curvestyles/lines.png +0 -0
  158. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/curvestyles/steps.png +0 -0
  159. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/curvestyles/sticks.png +0 -0
  160. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/curvetypes/xfy.png +0 -0
  161. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/curvetypes/yfx.png +0 -0
  162. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/delete.png +0 -0
  163. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/edit.png +0 -0
  164. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/edit_point_selection.png +0 -0
  165. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/edit.png +0 -0
  166. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/edit_add.png +0 -0
  167. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/editcopy.png +0 -0
  168. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/editdelete.png +0 -0
  169. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/editpaste.png +0 -0
  170. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/fileimport.png +0 -0
  171. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/filesave.png +0 -0
  172. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/imshow.png +0 -0
  173. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/insert.png +0 -0
  174. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/plot.png +0 -0
  175. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/editors/rename.png +0 -0
  176. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/eliminate_outliers.png +0 -0
  177. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/eraser.png +0 -0
  178. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/exit.png +0 -0
  179. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/expander_down.png +0 -0
  180. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/expander_right.png +0 -0
  181. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/export.png +0 -0
  182. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/file.png +0 -0
  183. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/fileclose.png +0 -0
  184. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/fileimport.png +0 -0
  185. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filenew.png +0 -0
  186. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/fileopen.png +0 -0
  187. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filesave.png +0 -0
  188. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filesaveas.png +0 -0
  189. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/doc.png +0 -0
  190. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/gif.png +0 -0
  191. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/html.png +0 -0
  192. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/jpg.png +0 -0
  193. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/pdf.png +0 -0
  194. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/png.png +0 -0
  195. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/pps.png +0 -0
  196. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/ps.png +0 -0
  197. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/tar.png +0 -0
  198. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/tgz.png +0 -0
  199. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/tif.png +0 -0
  200. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/txt.png +0 -0
  201. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/xls.png +0 -0
  202. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/filetypes/zip.png +0 -0
  203. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/font.png +0 -0
  204. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/full_range.png +0 -0
  205. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/funct.png +0 -0
  206. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/hcursor.png +0 -0
  207. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/hflip.png +0 -0
  208. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/imagestats.png +0 -0
  209. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/item_list.png +0 -0
  210. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/annotation.png +0 -0
  211. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/curve.png +0 -0
  212. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/errorbar.png +0 -0
  213. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/grid.png +0 -0
  214. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/histogram.png +0 -0
  215. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/histogram2d.png +0 -0
  216. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/image.png +0 -0
  217. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/label.png +0 -0
  218. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/legend.png +0 -0
  219. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/items/polygonmap.png +0 -0
  220. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/magnifier.png +0 -0
  221. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/cross.png +0 -0
  222. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/diamond.png +0 -0
  223. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/ellipse.png +0 -0
  224. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/hexagon.png +0 -0
  225. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/point.png +0 -0
  226. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/square.png +0 -0
  227. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/star.png +0 -0
  228. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/triangle_d.png +0 -0
  229. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/triangle_l.png +0 -0
  230. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/triangle_r.png +0 -0
  231. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/triangle_u.png +0 -0
  232. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markers/xcross.png +0 -0
  233. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markerstyles/cross_marker.png +0 -0
  234. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markerstyles/horiz_marker.png +0 -0
  235. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/markerstyles/vert_marker.png +0 -0
  236. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/mask/mask_circle.png +0 -0
  237. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/mask/mask_circle_outside.png +0 -0
  238. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/mask/mask_rectangle.png +0 -0
  239. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/mask/mask_rectangle_outside.png +0 -0
  240. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/mask/mask_tool.png +0 -0
  241. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/max.png +0 -0
  242. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/min.png +0 -0
  243. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/move.png +0 -0
  244. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/multipoint_selection.png +0 -0
  245. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/none.png +0 -0
  246. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/not_found.png +0 -0
  247. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/on_curve.png +0 -0
  248. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/bdiagpattern.png +0 -0
  249. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/crosspattern.png +0 -0
  250. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/dense1pattern.png +0 -0
  251. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/dense2pattern.png +0 -0
  252. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/dense3pattern.png +0 -0
  253. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/dense4pattern.png +0 -0
  254. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/dense5pattern.png +0 -0
  255. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/dense6pattern.png +0 -0
  256. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/dense7pattern.png +0 -0
  257. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/diagcrosspattern.png +0 -0
  258. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/fdiagpattern.png +0 -0
  259. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/horpattern.png +0 -0
  260. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/nobrush.png +0 -0
  261. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/solidpattern.png +0 -0
  262. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/patterns/verpattern.png +0 -0
  263. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/plotpy-banner.svg +0 -0
  264. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/plotpy-vertical.svg +0 -0
  265. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/plotpy.svg +0 -0
  266. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/point_selection.png +0 -0
  267. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/print.png +0 -0
  268. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/python.png +0 -0
  269. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/quickview.png +0 -0
  270. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/refresh.png +0 -0
  271. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/save_all.png +0 -0
  272. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/scales/lin_lin.png +0 -0
  273. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/scales/lin_log.png +0 -0
  274. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/scales/log_lin.png +0 -0
  275. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/scales/log_log.png +0 -0
  276. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/settings.png +0 -0
  277. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shape.png +0 -0
  278. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/circle.png +0 -0
  279. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/contour.png +0 -0
  280. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/ellipse_shape.png +0 -0
  281. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/gtaxes.png +0 -0
  282. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/marker.png +0 -0
  283. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/oblique_rectangle.png +0 -0
  284. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/point_shape.png +0 -0
  285. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/polygon.png +0 -0
  286. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/polyline.png +0 -0
  287. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/rectangle.png +0 -0
  288. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/shapes/segment.png +0 -0
  289. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/snapshot.png +0 -0
  290. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/styles/dash.png +0 -0
  291. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/styles/dashdot.png +0 -0
  292. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/styles/dashdotdot.png +0 -0
  293. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/styles/dot.png +0 -0
  294. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/styles/solid.png +0 -0
  295. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/trash.png +0 -0
  296. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/trimage_lock.png +0 -0
  297. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/trimage_unlock.png +0 -0
  298. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/vcursor.png +0 -0
  299. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/vflip.png +0 -0
  300. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/xcursor.png +0 -0
  301. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/xmax.png +0 -0
  302. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/xmin.png +0 -0
  303. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/xrange.png +0 -0
  304. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/data/icons/zlog.svg +0 -0
  305. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/events.py +0 -0
  306. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/external/__init__.py +0 -0
  307. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/external/sliders/__init__.py +0 -0
  308. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/external/sliders/_generic_range_slider.py +0 -0
  309. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/external/sliders/_generic_slider.py +0 -0
  310. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/external/sliders/_labeled.py +0 -0
  311. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/external/sliders/_misc.py +0 -0
  312. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/external/sliders/_range_style.py +0 -0
  313. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/external/sliders/_sliders.py +0 -0
  314. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/interfaces/__init__.py +0 -0
  315. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/interfaces/items.py +0 -0
  316. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/interfaces/panel.py +0 -0
  317. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/interfaces/plotmanager.py +0 -0
  318. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/io.py +0 -0
  319. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/__init__.py +0 -0
  320. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/annotation.py +0 -0
  321. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/contour.py +0 -0
  322. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/curve/__init__.py +0 -0
  323. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/curve/base.py +0 -0
  324. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/curve/errorbar.py +0 -0
  325. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/grid.py +0 -0
  326. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/histogram.py +0 -0
  327. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/image/__init__.py +0 -0
  328. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/image/masked.py +0 -0
  329. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/label.py +0 -0
  330. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/polygonmap.py +0 -0
  331. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/__init__.py +0 -0
  332. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/axis.py +0 -0
  333. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/base.py +0 -0
  334. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/ellipse.py +0 -0
  335. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/marker.py +0 -0
  336. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/point.py +0 -0
  337. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/polygon.py +0 -0
  338. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/range.py +0 -0
  339. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/rectangle.py +0 -0
  340. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/segment.py +0 -0
  341. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/items/shape/svg.py +0 -0
  342. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/locale/fr/LC_MESSAGES/plotpy.mo +0 -0
  343. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/lutrange.py +0 -0
  344. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/mathutils/__init__.py +0 -0
  345. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/mathutils/arrayfuncs.py +0 -0
  346. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/mathutils/colormap.py +0 -0
  347. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/mathutils/geometry.py +0 -0
  348. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/mathutils/scaler.py +0 -0
  349. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/panels/__init__.py +0 -0
  350. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/panels/base.py +0 -0
  351. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/panels/contrastadjustment.py +0 -0
  352. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/panels/csection/__init__.py +0 -0
  353. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/panels/csection/csitem.py +0 -0
  354. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/panels/csection/csplot.py +0 -0
  355. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/panels/csection/cswidget.py +0 -0
  356. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/panels/itemlist.py +0 -0
  357. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/plot/__init__.py +0 -0
  358. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/plot/base.py +0 -0
  359. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/plot/interactive.py +0 -0
  360. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/plot/plotwidget.py +0 -0
  361. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/pyplot.py +0 -0
  362. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/__init__.py +0 -0
  363. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/axes.py +0 -0
  364. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/base.py +0 -0
  365. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/curve.py +0 -0
  366. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/errorbar.py +0 -0
  367. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/histogram.py +0 -0
  368. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/image.py +0 -0
  369. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/label.py +0 -0
  370. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/polygonmap.py +0 -0
  371. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/styles/shape.py +0 -0
  372. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/__init__.py +0 -0
  373. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/benchmarks/__init__.py +0 -0
  374. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/benchmarks/test_benchmarks.py +0 -0
  375. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/benchmarks/test_bigimages.py +0 -0
  376. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/benchmarks/test_loadtest.py +0 -0
  377. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/conftest.py +0 -0
  378. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/data/brain.png +0 -0
  379. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/data/brain_cylinder.png +0 -0
  380. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/data/mr-brain.dcm +0 -0
  381. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/data/svg_target.svg +0 -0
  382. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/data/svg_tool.svg +0 -0
  383. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/data.py +0 -0
  384. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/__init__.py +0 -0
  385. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_auto_curve_image.py +0 -0
  386. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_autoscale_shapes.py +0 -0
  387. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_builder.py +0 -0
  388. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_colormap_editor.py +0 -0
  389. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_colormap_manager.py +0 -0
  390. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_computations.py +0 -0
  391. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_contrast.py +0 -0
  392. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_cursors.py +0 -0
  393. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_dicom_image.py +0 -0
  394. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_image_coords.py +0 -0
  395. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_image_data_update.py +0 -0
  396. /plotpy-2.7.2/plotpy/tests/features/test_imagefilter.py → /plotpy-2.7.3/plotpy/tests/features/test_image_filter.py +0 -0
  397. /plotpy-2.7.2/plotpy/tests/features/test_imagesuperp.py → /plotpy-2.7.3/plotpy/tests/features/test_image_superp.py +0 -0
  398. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_loadsaveitems_hdf5.py +0 -0
  399. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_loadsaveitems_json.py +0 -0
  400. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_loadsaveitems_pickle.py +0 -0
  401. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_manager.py +0 -0
  402. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_no_auto_tools.py +0 -0
  403. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_plot_log.py +0 -0
  404. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_plot_types.py +0 -0
  405. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_plot_yreverse.py +0 -0
  406. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_pyplot.py +0 -0
  407. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/features/test_resize.py +0 -0
  408. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/__init__.py +0 -0
  409. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_annotations.py +0 -0
  410. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_curves.py +0 -0
  411. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_curves_highdpi.py +0 -0
  412. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_hist2d.py +0 -0
  413. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_histogram.py +0 -0
  414. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_image.py +0 -0
  415. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_image_contour.py +0 -0
  416. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_image_masked.py +0 -0
  417. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_image_masked_xy.py +0 -0
  418. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_image_rgb.py +0 -0
  419. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_image_xy.py +0 -0
  420. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_pcolor.py +0 -0
  421. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_polygons.py +0 -0
  422. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_svgshapes.py +0 -0
  423. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/items/test_transform.py +0 -0
  424. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/__init__.py +0 -0
  425. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_actiontool.py +0 -0
  426. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_cross_section.py +0 -0
  427. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_cross_section_line.py +0 -0
  428. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_cross_section_oblique.py +0 -0
  429. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_customize_shape_tool.py +0 -0
  430. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_cyclic_import.py +0 -0
  431. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_downsample_curve.py +0 -0
  432. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_edit_point.py +0 -0
  433. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_get_point.py +0 -0
  434. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_get_points.py +0 -0
  435. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_get_rectangle.py +0 -0
  436. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_get_rectangle_with_svg.py +0 -0
  437. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_get_segment.py +0 -0
  438. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_image_plot_tools.py +0 -0
  439. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_stats_tools.py +0 -0
  440. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/tools/test_zaxislog.py +0 -0
  441. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/__init__.py +0 -0
  442. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_annotation_tools.py +0 -0
  443. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_aspect_ratio_tool.py +0 -0
  444. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_baseplot.py +0 -0
  445. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_builder_annotation.py +0 -0
  446. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_builder_curve.py +0 -0
  447. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_builder_image.py +0 -0
  448. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_builder_shape.py +0 -0
  449. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_contour.py +0 -0
  450. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_cursor_tools.py +0 -0
  451. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_curve_tools.py +0 -0
  452. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_display_coords_tool.py +0 -0
  453. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_events.py +0 -0
  454. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_fontparam.py +0 -0
  455. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_geometry.py +0 -0
  456. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_io.py +0 -0
  457. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_line.py +0 -0
  458. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_line_cross_section_tool.py +0 -0
  459. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_manipulate_selection.py +0 -0
  460. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_mask_tool.py +0 -0
  461. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_multiline_tools.py +0 -0
  462. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_oblique_cross_section_tool.py +0 -0
  463. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_plot_curve.py +0 -0
  464. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_plot_image.py +0 -0
  465. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_rect_zoom.py +0 -0
  466. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_seg_dist.py +0 -0
  467. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_styles.py +0 -0
  468. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/test_tools_export.py +0 -0
  469. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/unit/utils.py +0 -0
  470. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/vistools.py +0 -0
  471. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/__init__.py +0 -0
  472. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_filtertest1.py +0 -0
  473. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_filtertest2.py +0 -0
  474. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_fliprotate.py +0 -0
  475. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_plot_timecurve.py +0 -0
  476. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_qtdesigner.py +0 -0
  477. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_qtdesigner.ui +0 -0
  478. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_resize_dialog.py +0 -0
  479. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_rotatecrop.py +0 -0
  480. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_simple_dialog.py +0 -0
  481. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_simple_window.py +0 -0
  482. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_syncplot.py +0 -0
  483. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tests/widgets/test_theme.py +0 -0
  484. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/__init__.py +0 -0
  485. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/annotation.py +0 -0
  486. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/axes.py +0 -0
  487. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/base.py +0 -0
  488. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/cross_section.py +0 -0
  489. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/cursor.py +0 -0
  490. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/curve.py +0 -0
  491. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/image.py +0 -0
  492. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/item.py +0 -0
  493. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/label.py +0 -0
  494. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/misc.py +0 -0
  495. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/tools/shape.py +0 -0
  496. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/__init__.py +0 -0
  497. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/about.py +0 -0
  498. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/basetransform.py +0 -0
  499. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/colormap/__init__.py +0 -0
  500. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/colormap/_slider.py +0 -0
  501. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/colormap/editor.py +0 -0
  502. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/colormap/manager.py +0 -0
  503. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/colormap/widget.py +0 -0
  504. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/fliprotate.py +0 -0
  505. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/imagefile.py +0 -0
  506. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/qtdesigner.py +0 -0
  507. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/resizedialog.py +0 -0
  508. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/rotatecrop.py +0 -0
  509. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy/widgets/selectdialog.py +0 -0
  510. {plotpy-2.7.2 → plotpy-2.7.3}/plotpy-tests.desktop +0 -0
  511. {plotpy-2.7.2 → plotpy-2.7.3}/pyproject.toml +0 -0
  512. {plotpy-2.7.2 → plotpy-2.7.3}/qtdesigner/plotplugin.py +0 -0
  513. {plotpy-2.7.2 → plotpy-2.7.3}/requirements.txt +0 -0
  514. {plotpy-2.7.2 → plotpy-2.7.3}/setup.cfg +0 -0
  515. {plotpy-2.7.2 → plotpy-2.7.3}/setup.py +0 -0
  516. {plotpy-2.7.2 → plotpy-2.7.3}/src/arrays.hpp +0 -0
  517. {plotpy-2.7.2 → plotpy-2.7.3}/src/debug.hpp +0 -0
  518. {plotpy-2.7.2 → plotpy-2.7.3}/src/histogram2d.pyx +0 -0
  519. {plotpy-2.7.2 → plotpy-2.7.3}/src/mandelbrot.pyx +0 -0
  520. {plotpy-2.7.2 → plotpy-2.7.3}/src/pcolor.cpp +0 -0
  521. {plotpy-2.7.2 → plotpy-2.7.3}/src/points.hpp +0 -0
  522. {plotpy-2.7.2 → plotpy-2.7.3}/src/scaler.cpp +0 -0
  523. {plotpy-2.7.2 → plotpy-2.7.3}/src/scaler.hpp +0 -0
  524. {plotpy-2.7.2 → plotpy-2.7.3}/src/traits.hpp +0 -0
@@ -1,5 +1,23 @@
1
1
  # Changelog #
2
2
 
3
+ ## Version 2.7.3 ##
4
+
5
+ In this release, test coverage is 80%.
6
+
7
+ 🛠️ Bug fixes:
8
+
9
+ * [Issue #40](https://github.com/PlotPyStack/PlotPy/issues/40) - Z-axis logarithmic scale (`ZAxisLogTool` tool) is not compatible with anti-aliasing interpolation
10
+ * Fix intersection check for destination rectangle in `XYImageFilterItem`
11
+ * [Issue #36](https://github.com/PlotPyStack/PlotPy/issues/36) - Image items are not properly scaling along Y-axis with logarithmic scale:
12
+ * Actually, image items do not support non-linear scales (this is an historical limitation)
13
+ * This is not documented at all, so we've added an explicit warning: a red colored message is displayed at the center of the image frame when any non-linear scale is applied to either X or Y axis
14
+ * When dealing with non-linear scales, PlotPy provides an alternative solution: the user may rely on `XYImageItem` (e.g. by using `make.xyimage`) as this item supports arbitrary X and Y pixel coordinates
15
+ * [Issue #34](https://github.com/PlotPyStack/PlotPy/issues/34) - `ValueError` when trying to plot 2D histogram items with `PyQt6`
16
+
17
+ Other changes:
18
+
19
+ * Replace deprecated icon files with new SVG icons for selection tools
20
+
3
21
  ## Version 2.7.2 ##
4
22
 
5
23
  🛠️ Bug fixes:
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: PlotPy
3
- Version: 2.7.2
3
+ Version: 2.7.3
4
4
  Summary: Curve and image plotting tools for Python/Qt applications
5
5
  Author-email: Codra <p.raybaut@codra.fr>
6
6
  License: BSD 3-Clause License
@@ -83,6 +83,7 @@ Requires-Dist: python-docs-theme; extra == "doc"
83
83
  Provides-Extra: test
84
84
  Requires-Dist: pytest; extra == "test"
85
85
  Requires-Dist: pytest-xvfb; extra == "test"
86
+ Dynamic: license-file
86
87
 
87
88
  # PlotPy: Curve and image plotting tools for Python/Qt applications
88
89
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: PlotPy
3
- Version: 2.7.2
3
+ Version: 2.7.3
4
4
  Summary: Curve and image plotting tools for Python/Qt applications
5
5
  Author-email: Codra <p.raybaut@codra.fr>
6
6
  License: BSD 3-Clause License
@@ -83,6 +83,7 @@ Requires-Dist: python-docs-theme; extra == "doc"
83
83
  Provides-Extra: test
84
84
  Requires-Dist: pytest; extra == "test"
85
85
  Requires-Dist: pytest-xvfb; extra == "test"
86
+ Dynamic: license-file
86
87
 
87
88
  # PlotPy: Curve and image plotting tools for Python/Qt applications
88
89
 
@@ -184,10 +184,10 @@ plotpy/data/icons/point_selection.png
184
184
  plotpy/data/icons/print.png
185
185
  plotpy/data/icons/python.png
186
186
  plotpy/data/icons/quickview.png
187
- plotpy/data/icons/rectangular_select.png
188
187
  plotpy/data/icons/refresh.png
189
188
  plotpy/data/icons/save_all.png
190
- plotpy/data/icons/selection.png
189
+ plotpy/data/icons/select.svg
190
+ plotpy/data/icons/select_area.svg
191
191
  plotpy/data/icons/settings.png
192
192
  plotpy/data/icons/shape.png
193
193
  plotpy/data/icons/snapshot.png
@@ -392,8 +392,8 @@ plotpy/tests/features/test_dicom_image.py
392
392
  plotpy/tests/features/test_fit.py
393
393
  plotpy/tests/features/test_image_coords.py
394
394
  plotpy/tests/features/test_image_data_update.py
395
- plotpy/tests/features/test_imagefilter.py
396
- plotpy/tests/features/test_imagesuperp.py
395
+ plotpy/tests/features/test_image_filter.py
396
+ plotpy/tests/features/test_image_superp.py
397
397
  plotpy/tests/features/test_loadsaveitems_hdf5.py
398
398
  plotpy/tests/features/test_loadsaveitems_json.py
399
399
  plotpy/tests/features/test_loadsaveitems_pickle.py
@@ -20,7 +20,7 @@ External resources:
20
20
  .. _GitHub: https://github.com/PierreRaybaut/plotpy
21
21
  """
22
22
 
23
- __version__ = "2.7.2"
23
+ __version__ = "2.7.3"
24
24
  __VERSION__ = tuple([int(number) for number in __version__.split(".")])
25
25
 
26
26
  # --- Important note: DATAPATH and LOCALEPATH are used by guidata.configtools
@@ -0,0 +1,49 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+
4
+ <svg
5
+ width="800px"
6
+ height="800px"
7
+ viewBox="0 0 16 16"
8
+ version="1.1"
9
+ id="svg1"
10
+ sodipodi:docname="selection.svg"
11
+ inkscape:version="1.4 (86a8ad7, 2024-10-11)"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg">
16
+ <defs
17
+ id="defs1" />
18
+ <sodipodi:namedview
19
+ id="namedview1"
20
+ pagecolor="#ffffff"
21
+ bordercolor="#000000"
22
+ borderopacity="0.25"
23
+ inkscape:showpageshadow="2"
24
+ inkscape:pageopacity="0.0"
25
+ inkscape:pagecheckerboard="0"
26
+ inkscape:deskcolor="#d1d1d1"
27
+ inkscape:zoom="0.71329397"
28
+ inkscape:cx="270.57568"
29
+ inkscape:cy="428.29466"
30
+ inkscape:window-width="1920"
31
+ inkscape:window-height="1009"
32
+ inkscape:window-x="-8"
33
+ inkscape:window-y="-8"
34
+ inkscape:window-maximized="1"
35
+ inkscape:current-layer="svg1" />
36
+ <g
37
+ id="g1"
38
+ transform="matrix(0.88784428,0,0,0.88784428,0.95332363,0.89724577)">
39
+ <path
40
+ fill="#444444"
41
+ d="M 5,2.6 10.75,9 H 8.29 l 0.63,1.41 1.8,4 -0.91,0.34 -1.88,-4.3 -0.5,-1.11 -1,0.71 L 5,11.07 Z M 4,0 V 13 L 7,10.86 9.26,16 12.06,15 9.83,10 H 13 Z"
42
+ id="path1" />
43
+ <path
44
+ style="fill:#ffffff;stroke-width:1.19165;stroke-linecap:square;stroke-dashoffset:1.1932"
45
+ d="m 490.09419,734.12823 c -0.67954,-1.27167 -22.05472,-49.94327 -47.5004,-108.1591 C 396.26003,519.9646 373.2364,468.10145 371.93278,466.79782 c -0.38275,-0.38274 -27.76081,18.58526 -60.84013,42.15111 l -60.14422,42.847 -0.35938,-105.321 c -0.19767,-57.92657 -0.19767,-152.31589 0,-209.75406 l 0.35938,-104.43303 142.0959,158.16753 142.09589,158.16752 -60.4325,0.36537 c -33.23788,0.20097 -60.43252,0.88758 -60.43252,1.52581 0,0.63824 4.6488,11.51415 10.33066,24.16869 5.68185,12.65455 32.44633,72.21658 59.47659,132.36009 27.03027,60.1435 49.35142,110.20446 49.60256,111.24657 0.31025,1.28737 -6.40508,4.50021 -20.94934,10.02285 -18.97837,7.20633 -21.54607,7.86591 -22.64148,5.81596 z"
46
+ id="path2"
47
+ transform="scale(0.02)" />
48
+ </g>
49
+ </svg>
@@ -0,0 +1,63 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+
4
+ <svg
5
+ width="800px"
6
+ height="800px"
7
+ viewBox="0 0 16 16"
8
+ version="1.1"
9
+ id="svg2"
10
+ sodipodi:docname="select_area.svg"
11
+ inkscape:version="1.4 (86a8ad7, 2024-10-11)"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg">
16
+ <defs
17
+ id="defs2" />
18
+ <sodipodi:namedview
19
+ id="namedview2"
20
+ pagecolor="#ffffff"
21
+ bordercolor="#000000"
22
+ borderopacity="0.25"
23
+ inkscape:showpageshadow="2"
24
+ inkscape:pageopacity="0.0"
25
+ inkscape:pagecheckerboard="true"
26
+ inkscape:deskcolor="#d1d1d1"
27
+ inkscape:zoom="0.71329397"
28
+ inkscape:cx="278.28639"
29
+ inkscape:cy="361.00123"
30
+ inkscape:window-width="1920"
31
+ inkscape:window-height="1009"
32
+ inkscape:window-x="-8"
33
+ inkscape:window-y="-8"
34
+ inkscape:window-maximized="1"
35
+ inkscape:current-layer="svg2" />
36
+ <path
37
+ style="fill:#ffffff;stroke-width:0.920918;stroke-linecap:square;stroke-dasharray:1.8096, 1.2064"
38
+ d="M 2.3167695,2.4490864 V 2.7494641 3.0516405 3.3592128 3.6595906 H 2.9211222 V 3.3592128 3.0516405 H 4.428407 4.7305834 V 2.4490864 H 4.428407 2.9211222 2.6189458 Z m 3.0163681,0 V 3.0516405 H 5.6353139 7.4447742 7.7469505 V 2.4490864 H 7.4447742 5.6353139 Z m 3.0163671,0 v 0.6025541 h 0.3021764 1.8094619 0.300378 V 2.4490864 H 10.461143 8.6516811 Z m 3.0163683,0 v 0.6025541 h 0.300378 1.366989 v 0.1420947 h 0.602554 V 2.8915589 2.4490864 h -1.969543 z m 1.667367,1.347203 v 0.3021763 1.809461 0.3021763 h 0.602554 V 5.9079267 4.0984657 3.7962894 Z M 2.3167695,4.2639433 V 4.5643209 6.3755806 6.6759583 H 2.9211222 V 6.3755806 4.5643209 4.2639433 Z M 13.03324,6.8126572 v 0.3021763 1.8094609 0.3003778 h 0.602554 V 8.9242944 7.1148335 6.8126572 Z M 2.3167695,7.2803111 V 7.5806888 9.3901502 9.6923266 H 2.9211222 V 9.3901502 7.5806888 7.2803111 Z m 0,3.0145679 v 0.302177 1.647581 h 0.7662327 0.3021764 v -0.604353 h -0.3021764 -0.16188 v -1.043228 -0.302177 z m 1.6709633,1.345405 v 0.604353 H 4.2899091 6.0993703 6.4015466 V 11.640284 H 6.0993703 4.2899091 Z"
39
+ id="path4-4"
40
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
41
+ <path
42
+ style="fill:#ffffff;stroke-linecap:square;stroke-dasharray:1.965, 1.31;fill-opacity:0.60000002"
43
+ d="M 2.1589979,2.3552702 H 13.795154 V 12.337129 H 2.1589979 Z"
44
+ id="path3" />
45
+ <path
46
+ style="fill:#444444;stroke-linecap:square;stroke-dasharray:1.965, 1.31"
47
+ d="m 1.8307733,2.0285024 v 0.3261719 0.328125 0.3339843 0.326172 h 0.65625 V 3.0167836 2.6827993 H 4.123742 4.451867 V 2.0285024 H 4.123742 2.4870233 2.1588983 Z m 3.2753906,0 v 0.6542969 h 0.328125 1.9648437 0.328125 V 2.0285024 H 7.3991326 5.4342889 Z m 3.2753906,0 v 0.6542969 h 0.328125 1.9648435 0.326172 V 2.0285024 H 10.674523 8.7096795 Z m 3.2753905,0 v 0.6542969 h 0.326172 1.484375 v 0.1542968 h 0.654297 V 2.5089711 2.0285024 h -2.138672 z m 1.810547,1.4628907 v 0.3281249 1.9648438 0.328125 h 0.654297 V 5.7843618 3.819518 3.4913931 Z M 1.8307733,3.9992055 v 0.3261718 1.966797 0.3261719 h 0.65625 V 6.2921743 4.3253773 3.9992055 Z M 13.467492,6.7667837 v 0.328125 1.9648437 0.3261719 h 0.654297 V 9.0597524 7.0949087 6.7667837 Z M 1.8307733,7.2745962 v 0.3261719 1.9648442 0.328125 h 0.65625 V 9.5656123 7.6007681 7.2745962 Z m 0,3.2734368 v 0.328125 1.789063 h 0.8320312 0.328125 v -0.65625 H 2.6628045 2.4870233 v -1.132813 -0.328125 z m 1.8144531,1.460938 v 0.65625 h 0.328125 1.9648437 0.328125 v -0.65625 H 5.9381951 3.9733514 Z"
48
+ id="path4"
49
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
50
+ <g
51
+ id="g2"
52
+ transform="matrix(0.70442294,0,0,0.70442294,4.554049,4.547731)">
53
+ <path
54
+ fill="#444444"
55
+ d="M 5,2.6 10.75,9 H 8.29 l 0.63,1.41 1.8,4 -0.91,0.34 -1.88,-4.3 -0.5,-1.11 -1,0.71 L 5,11.07 Z M 4,0 V 13 L 7,10.86 9.26,16 12.06,15 9.83,10 H 13 Z"
56
+ id="path1-0" />
57
+ <path
58
+ style="fill:#ffffff;stroke-width:1.19165;stroke-linecap:square;stroke-dashoffset:1.1932"
59
+ d="m 490.09419,734.12823 c -0.67954,-1.27167 -22.05472,-49.94327 -47.5004,-108.1591 C 396.26003,519.9646 373.2364,468.10145 371.93278,466.79782 c -0.38275,-0.38274 -27.76081,18.58526 -60.84013,42.15111 l -60.14422,42.847 -0.35938,-105.321 c -0.19767,-57.92657 -0.19767,-152.31589 0,-209.75406 l 0.35938,-104.43303 142.0959,158.16753 142.09589,158.16752 -60.4325,0.36537 c -33.23788,0.20097 -60.43252,0.88758 -60.43252,1.52581 0,0.63824 4.6488,11.51415 10.33066,24.16869 5.68185,12.65455 32.44633,72.21658 59.47659,132.36009 27.03027,60.1435 49.35142,110.20446 49.60256,111.24657 0.31025,1.28737 -6.40508,4.50021 -20.94934,10.02285 -18.97837,7.20633 -21.54607,7.86591 -22.64148,5.81596 z"
60
+ id="path2-9"
61
+ transform="scale(0.02)" />
62
+ </g>
63
+ </svg>
@@ -14,7 +14,7 @@ from guidata.dataset import update_dataset
14
14
  from guidata.utils.misc import assert_interfaces_valid
15
15
  from qtpy import QtCore as QC
16
16
  from qtpy import QtGui as QG
17
- from qwt import QwtPlotItem
17
+ from qwt import QwtLinearScaleEngine, QwtPlotItem
18
18
 
19
19
  from plotpy import io
20
20
  from plotpy._scaler import (
@@ -55,6 +55,7 @@ if TYPE_CHECKING:
55
55
  from qtpy.QtGui import QColor, QPainter
56
56
 
57
57
  from plotpy.interfaces import IItemType
58
+ from plotpy.plot import BasePlot
58
59
  from plotpy.styles.base import ItemParameters
59
60
  from plotpy.widgets.colormap.widget import EditableColormap
60
61
 
@@ -582,6 +583,29 @@ class BaseImageItem(QwtPlotItem):
582
583
  """
583
584
  self.border_rect.draw(painter, xMap, yMap, canvasRect)
584
585
 
586
+ def warn_if_non_linear_scale(self, painter: QPainter, canvasRect: QRectF) -> bool:
587
+ """Warn if non-linear scale
588
+
589
+ Args:
590
+ painter: Painter
591
+ canvasRect: Canvas rectangle
592
+
593
+ Returns:
594
+ True if non-linear scale
595
+ """
596
+ plot: BasePlot = self.plot()
597
+ if not isinstance(
598
+ plot.axisScaleEngine(plot.X_BOTTOM), QwtLinearScaleEngine
599
+ ) or not isinstance(plot.axisScaleEngine(plot.Y_LEFT), QwtLinearScaleEngine):
600
+ painter.setPen(QC.Qt.red)
601
+ painter.drawText(
602
+ canvasRect,
603
+ QC.Qt.AlignCenter,
604
+ _("Non-linear scales are not supported for image items"),
605
+ )
606
+ return True
607
+ return False
608
+
585
609
  def draw_image(
586
610
  self,
587
611
  painter: QPainter,
@@ -601,6 +625,8 @@ class BaseImageItem(QwtPlotItem):
601
625
  xMap: X axis scale map
602
626
  yMap: Y axis scale map
603
627
  """
628
+ if self.warn_if_non_linear_scale(painter, canvasRect):
629
+ return
604
630
  dest = _scale_rect(
605
631
  self.data, src_rect, self._offscreen, dst_rect, self.lut, self.interpolate
606
632
  )
@@ -313,7 +313,7 @@ class XYImageFilterItem(ImageFilterItem):
313
313
  j0, j1 = int(yMap.transform(y0)), int(yMap.transform(y1))
314
314
 
315
315
  dstRect = QC.QRect(i0, j0, i1 - i0, j1 - j0)
316
- if not dstRect.intersects(canvasRect):
316
+ if not dstRect.intersects(canvasRect.toAlignedRect()):
317
317
  return
318
318
 
319
319
  x, y, data = self.image.get_data(x0, y0, x1, y1)
@@ -11,6 +11,7 @@ from guidata.utils.misc import assert_interfaces_valid
11
11
  from qtpy import QtCore as QC
12
12
 
13
13
  from plotpy import io
14
+ from plotpy._scaler import INTERP_AA
14
15
  from plotpy.config import _
15
16
  from plotpy.constants import LUTAlpha
16
17
  from plotpy.coords import canvas_to_axes, pixelround
@@ -241,9 +242,13 @@ class ImageItem(RawImageItem):
241
242
  if self._log_data is None:
242
243
  self._log_data = np.array(np.log10(self.data.clip(1)), dtype=np.float64)
243
244
  self.set_lut_range(get_nan_range(self._log_data))
245
+ dtype = self._log_data.dtype
244
246
  else:
245
247
  self._log_data = None
246
248
  self.set_lut_range(self._lin_lut_range)
249
+ dtype = self.data.dtype
250
+ if self.interpolate[0] == INTERP_AA:
251
+ self.interpolate = (INTERP_AA, self.interpolate[1].astype(dtype))
247
252
  plot.update_colormap_axis(self)
248
253
 
249
254
  # ---- BaseImageItem API ---------------------------------------------------
@@ -376,6 +381,9 @@ class ImageItem(RawImageItem):
376
381
  """
377
382
  if self.data is None:
378
383
  return
384
+ if self.warn_if_non_linear_scale(painter, canvasRect):
385
+ return
386
+
379
387
  src2 = self._rescale_src_rect(src_rect)
380
388
  dst_rect = tuple([int(i) for i in dst_rect])
381
389
 
@@ -651,6 +659,8 @@ class XYImageItem(RawImageItem):
651
659
  xMap: X axis scale map
652
660
  yMap: Y axis scale map
653
661
  """
662
+ if self.warn_if_non_linear_scale(painter, canvasRect):
663
+ return
654
664
  xytr = self.x, self.y, src_rect
655
665
  dst_rect = tuple([int(i) for i in dst_rect])
656
666
  dest = _scale_xy(
@@ -39,7 +39,7 @@ except ImportError:
39
39
  file=sys.stderr,
40
40
  )
41
41
  print(
42
- ("try running :" "python setup.py build_ext --inplace -c mingw32"),
42
+ ("try running: python setup.py build_ext --inplace"),
43
43
  file=sys.stderr,
44
44
  )
45
45
  raise
@@ -169,6 +169,8 @@ class QuadGridItem(RawImageItem):
169
169
  xMap: X axis scale map
170
170
  yMap: Y axis scale map
171
171
  """
172
+ if self.warn_if_non_linear_scale(painter, canvasRect):
173
+ return
172
174
  self._offscreen[...] = np.uint32(0)
173
175
  dest = _scale_quads(
174
176
  self.X,
@@ -294,6 +296,8 @@ class Histogram2DItem(BaseImageItem):
294
296
  xMap: X axis scale map
295
297
  yMap: Y axis scale map
296
298
  """
299
+ if self.warn_if_non_linear_scale(painter, canvasRect):
300
+ return
297
301
  computation = self.histparam.computation
298
302
  i1, j1, i2, j2 = src_rect
299
303
 
@@ -340,7 +344,7 @@ class Histogram2DItem(BaseImageItem):
340
344
  return BaseImageItem.draw_image(self, *args)
341
345
 
342
346
  if self.fill_canvas:
343
- x1, y1, x2, y2 = canvasRect.getCoords()
347
+ x1, y1, x2, y2 = canvasRect.toAlignedRect().getCoords()
344
348
  drawfunc(painter, canvasRect, src_rect, (x1, y1, x2, y2), xMap, yMap)
345
349
  else:
346
350
  dst_rect = tuple([int(i) for i in dst_rect])
@@ -257,6 +257,8 @@ class TrImageItem(RawImageItem):
257
257
  xMap: X axis scale map
258
258
  yMap: Y axis scale map
259
259
  """
260
+ if self.warn_if_non_linear_scale(painter, canvasRect):
261
+ return
260
262
  W = canvasRect.width()
261
263
  H = canvasRect.height()
262
264
  if W <= 1 or H <= 1:
@@ -13,49 +13,6 @@ from qtpy import QtWidgets as QW
13
13
  from plotpy.constants import ID_CONTRAST, ID_ITEMLIST, ID_XCS, ID_YCS
14
14
  from plotpy.interfaces import IPlotManager
15
15
  from plotpy.plot import BasePlot
16
- from plotpy.tools import (
17
- AboutTool,
18
- AnnotatedCircleTool,
19
- AnnotatedEllipseTool,
20
- AnnotatedObliqueRectangleTool,
21
- AnnotatedPointTool,
22
- AnnotatedRectangleTool,
23
- AnnotatedSegmentTool,
24
- AntiAliasingTool,
25
- AspectRatioTool,
26
- AverageCrossSectionTool,
27
- AxisScaleTool,
28
- BasePlotMenuTool,
29
- ColormapTool,
30
- ContrastPanelTool,
31
- CopyToClipboardTool,
32
- CrossSectionTool,
33
- CurveStatsTool,
34
- DeleteItemTool,
35
- DisplayCoordsTool,
36
- DoAutoscaleTool,
37
- DownSamplingTool,
38
- DummySeparatorTool,
39
- EditItemDataTool,
40
- ExportItemDataTool,
41
- HelpTool,
42
- ImageStatsTool,
43
- ItemCenterTool,
44
- ItemListPanelTool,
45
- LabelTool,
46
- PrintTool,
47
- RectangularSelectionTool,
48
- RectZoomTool,
49
- ReverseColormapTool,
50
- ReverseXAxisTool,
51
- ReverseYAxisTool,
52
- SaveAsTool,
53
- SelectTool,
54
- SnapshotTool,
55
- XCSPanelTool,
56
- YCSPanelTool,
57
- ZAxisLogTool,
58
- )
59
16
 
60
17
  if TYPE_CHECKING:
61
18
  from typing import Callable
@@ -241,12 +198,16 @@ class PlotManager:
241
198
  Args:
242
199
  toolbar_id: toolbar's id (default to None)
243
200
  """
201
+ # This avoids circular imports (see Issue #39)
202
+ # pylint: disable=import-outside-toplevel
203
+ import plotpy.tools as tools
204
+
244
205
  if toolbar_id is None:
245
206
  for _id, toolbar in list(self.toolbars.items()):
246
207
  if toolbar is self.get_default_toolbar():
247
208
  toolbar_id = _id
248
209
  break
249
- self.add_tool(DummySeparatorTool, toolbar_id)
210
+ self.add_tool(tools.DummySeparatorTool, toolbar_id)
250
211
 
251
212
  def set_default_tool(self, tool: GuiTool) -> None:
252
213
  """
@@ -547,22 +508,26 @@ class PlotManager:
547
508
  Registering basic tools for standard plot dialog
548
509
  --> top of the context-menu
549
510
  """
550
- t = self.add_tool(SelectTool)
511
+ # This avoids circular imports (see Issue #39)
512
+ # pylint: disable=import-outside-toplevel
513
+ import plotpy.tools as tools
514
+
515
+ t = self.add_tool(tools.SelectTool)
551
516
  self.set_default_tool(t)
552
- self.add_tool(RectangularSelectionTool, intersect=False)
553
- self.add_tool(RectZoomTool)
554
- self.add_tool(DoAutoscaleTool)
555
- self.add_tool(BasePlotMenuTool, "item")
556
- self.add_tool(ExportItemDataTool)
557
- self.add_tool(EditItemDataTool)
558
- self.add_tool(ItemCenterTool)
559
- self.add_tool(DeleteItemTool)
517
+ self.add_tool(tools.RectangularSelectionTool, intersect=False)
518
+ self.add_tool(tools.RectZoomTool)
519
+ self.add_tool(tools.DoAutoscaleTool)
520
+ self.add_tool(tools.BasePlotMenuTool, "item")
521
+ self.add_tool(tools.ExportItemDataTool)
522
+ self.add_tool(tools.EditItemDataTool)
523
+ self.add_tool(tools.ItemCenterTool)
524
+ self.add_tool(tools.DeleteItemTool)
560
525
  self.add_separator_tool()
561
- self.add_tool(BasePlotMenuTool, "grid")
562
- self.add_tool(BasePlotMenuTool, "axes")
563
- self.add_tool(DisplayCoordsTool)
526
+ self.add_tool(tools.BasePlotMenuTool, "grid")
527
+ self.add_tool(tools.BasePlotMenuTool, "axes")
528
+ self.add_tool(tools.DisplayCoordsTool)
564
529
  if self.get_itemlist_panel():
565
- self.add_tool(ItemListPanelTool)
530
+ self.add_tool(tools.ItemListPanelTool)
566
531
 
567
532
  def register_curve_tools(self) -> None:
568
533
  """
@@ -580,10 +545,14 @@ class PlotManager:
580
545
 
581
546
  :py:meth:`.plot.manager.PlotManager.register_all_tools`
582
547
  """
583
- self.add_tool(CurveStatsTool)
584
- self.add_tool(AntiAliasingTool)
585
- self.add_tool(AxisScaleTool)
586
- self.add_tool(DownSamplingTool)
548
+ # This avoids circular imports (see Issue #39)
549
+ # pylint: disable=import-outside-toplevel
550
+ import plotpy.tools as tools
551
+
552
+ self.add_tool(tools.CurveStatsTool)
553
+ self.add_tool(tools.AntiAliasingTool)
554
+ self.add_tool(tools.AxisScaleTool)
555
+ self.add_tool(tools.DownSamplingTool)
587
556
 
588
557
  def register_image_tools(self) -> None:
589
558
  """
@@ -601,21 +570,25 @@ class PlotManager:
601
570
 
602
571
  :py:meth:`.plot.manager.PlotManager.register_all_tools`
603
572
  """
604
- self.add_tool(ColormapTool)
605
- self.add_tool(ReverseColormapTool)
606
- self.add_tool(ReverseXAxisTool)
607
- self.add_tool(ReverseYAxisTool)
608
- self.add_tool(ZAxisLogTool)
609
- self.add_tool(AspectRatioTool)
573
+ # This avoids circular imports (see Issue #39)
574
+ # pylint: disable=import-outside-toplevel
575
+ import plotpy.tools as tools
576
+
577
+ self.add_tool(tools.ColormapTool)
578
+ self.add_tool(tools.ReverseColormapTool)
579
+ self.add_tool(tools.ReverseXAxisTool)
580
+ self.add_tool(tools.ReverseYAxisTool)
581
+ self.add_tool(tools.ZAxisLogTool)
582
+ self.add_tool(tools.AspectRatioTool)
610
583
  if self.get_contrast_panel():
611
- self.add_tool(ContrastPanelTool)
612
- self.add_tool(SnapshotTool)
613
- self.add_tool(ImageStatsTool)
584
+ self.add_tool(tools.ContrastPanelTool)
585
+ self.add_tool(tools.SnapshotTool)
586
+ self.add_tool(tools.ImageStatsTool)
614
587
  if self.get_xcs_panel() and self.get_ycs_panel():
615
- self.add_tool(XCSPanelTool)
616
- self.add_tool(YCSPanelTool)
617
- self.add_tool(CrossSectionTool)
618
- self.add_tool(AverageCrossSectionTool)
588
+ self.add_tool(tools.XCSPanelTool)
589
+ self.add_tool(tools.YCSPanelTool)
590
+ self.add_tool(tools.CrossSectionTool)
591
+ self.add_tool(tools.AverageCrossSectionTool)
619
592
 
620
593
  def register_other_tools(self) -> None:
621
594
  """
@@ -633,11 +606,15 @@ class PlotManager:
633
606
 
634
607
  :py:meth:`.plot.manager.PlotManager.register_all_tools`
635
608
  """
636
- self.add_tool(SaveAsTool)
637
- self.add_tool(CopyToClipboardTool)
638
- self.add_tool(PrintTool)
639
- self.add_tool(HelpTool)
640
- self.add_tool(AboutTool)
609
+ # This avoids circular imports (see Issue #39)
610
+ # pylint: disable=import-outside-toplevel
611
+ import plotpy.tools as tools
612
+
613
+ self.add_tool(tools.SaveAsTool)
614
+ self.add_tool(tools.CopyToClipboardTool)
615
+ self.add_tool(tools.PrintTool)
616
+ self.add_tool(tools.HelpTool)
617
+ self.add_tool(tools.AboutTool)
641
618
 
642
619
  def register_all_curve_tools(self) -> None:
643
620
  """
@@ -732,23 +709,31 @@ class PlotManager:
732
709
  """
733
710
  Register all annotation tools for the plot
734
711
  """
712
+ # This avoids circular imports (see Issue #39)
713
+ # pylint: disable=import-outside-toplevel
714
+ import plotpy.tools as tools
715
+
735
716
  self.add_separator_tool()
736
- self.add_tool(AnnotatedPointTool)
737
- self.add_tool(AnnotatedSegmentTool)
738
- self.add_tool(AnnotatedRectangleTool)
739
- self.add_tool(AnnotatedObliqueRectangleTool)
740
- self.add_tool(AnnotatedCircleTool)
741
- self.add_tool(AnnotatedEllipseTool)
742
- self.add_tool(LabelTool)
717
+ self.add_tool(tools.AnnotatedPointTool)
718
+ self.add_tool(tools.AnnotatedSegmentTool)
719
+ self.add_tool(tools.AnnotatedRectangleTool)
720
+ self.add_tool(tools.AnnotatedObliqueRectangleTool)
721
+ self.add_tool(tools.AnnotatedCircleTool)
722
+ self.add_tool(tools.AnnotatedEllipseTool)
723
+ self.add_tool(tools.LabelTool)
743
724
 
744
725
  def register_curve_annotation_tools(self) -> None:
745
726
  """
746
727
  Register all curve friendly annotation tools for the plot
747
728
  """
729
+ # This avoids circular imports (see Issue #39)
730
+ # pylint: disable=import-outside-toplevel
731
+ import plotpy.tools as tools
732
+
748
733
  self.add_separator_tool()
749
- self.add_tool(AnnotatedPointTool)
750
- self.add_tool(AnnotatedSegmentTool)
751
- self.add_tool(LabelTool)
734
+ self.add_tool(tools.AnnotatedPointTool)
735
+ self.add_tool(tools.AnnotatedSegmentTool)
736
+ self.add_tool(tools.LabelTool)
752
737
 
753
738
  def register_image_annotation_tools(self) -> None:
754
739
  """
@@ -21,8 +21,8 @@ def test_fit():
21
21
  a, b = params
22
22
  return np.cos(b * x) + a
23
23
 
24
- a = FitParam("Offset", 1.0, 0.0, 2.0)
25
- b = FitParam("Frequency", 2.0, 1.0, 10.0, logscale=True)
24
+ a = FitParam("Offset", 0.7, -1.0, 1.0)
25
+ b = FitParam("Frequency", 1.2, 0.3, 3.0, logscale=True)
26
26
  params = [a, b]
27
27
  values = guifit(x, y, fit, params, xlabel="Time (s)", ylabel="Power (a.u.)")
28
28
 
@@ -47,8 +47,9 @@ class MandelItem(RawImageItem):
47
47
 
48
48
  # ---- QwtPlotItem API ------------------------------------------------------
49
49
  def draw_image(self, painter, canvasRect, srcRect, dstRect, xMap, yMap):
50
- x1, y1 = canvasRect.left(), canvasRect.top()
51
- x2, y2 = canvasRect.right(), canvasRect.bottom()
50
+ if self.warn_if_non_linear_scale(painter, canvasRect):
51
+ return
52
+ x1, y1, x2, y2 = canvasRect.toAlignedRect().getCoords()
52
53
  i1, j1, i2, j2 = srcRect
53
54
 
54
55
  NX = x2 - x1
@@ -58,7 +59,7 @@ class MandelItem(RawImageItem):
58
59
  mandelbrot(i1, j1, i2, j2, self.data, self.IMAX)
59
60
 
60
61
  srcRect = (0, 0, NX, NY)
61
- x1, y1, x2, y2 = canvasRect.getCoords()
62
+ x1, y1, x2, y2 = canvasRect.toAlignedRect().getCoords()
62
63
  RawImageItem.draw_image(
63
64
  self, painter, canvasRect, srcRect, (x1, y1, x2, y2), xMap, yMap
64
65
  )
@@ -102,6 +102,8 @@ class DotArrayItem(RawImageItem):
102
102
 
103
103
  def draw_image(self, painter, canvasRect, srcRect, dstRect, xMap, yMap):
104
104
  """Draw image"""
105
+ if self.warn_if_non_linear_scale(painter, canvasRect):
106
+ return
105
107
  painter.setRenderHint(QG.QPainter.Antialiasing, True)
106
108
  param = self.param
107
109
  xcoords = vmap(xMap, np.arange(0, param.dim_h + 1, param.step_x))
@@ -224,7 +224,7 @@ class DummySeparatorTool(GuiTool):
224
224
  class RectangularSelectionTool(RectangularActionTool):
225
225
  SWITCH_TO_DEFAULT_TOOL = True
226
226
  TITLE = _("Rectangular selection tool")
227
- ICON = "rectangular_select.png"
227
+ ICON = "select_area.svg"
228
228
 
229
229
  def __init__(self, manager, intersect=True, toolbar_id=DefaultToolbarID):
230
230
  super().__init__(
@@ -32,7 +32,7 @@ class SelectTool(InteractiveTool):
32
32
  """
33
33
 
34
34
  TITLE = _("Selection")
35
- ICON = "selection.png"
35
+ ICON = "select.svg"
36
36
  CURSOR = QC.Qt.CursorShape.ArrowCursor
37
37
 
38
38
  def setup_filter(self, baseplot: BasePlot) -> int: