scitex 2.7.0__py3-none-any.whl → 2.8.1__py3-none-any.whl

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 (355) hide show
  1. scitex/__init__.py +6 -2
  2. scitex/__version__.py +1 -1
  3. scitex/audio/README.md +52 -0
  4. scitex/audio/__init__.py +384 -0
  5. scitex/audio/__main__.py +129 -0
  6. scitex/audio/_tts.py +334 -0
  7. scitex/audio/engines/__init__.py +44 -0
  8. scitex/audio/engines/base.py +275 -0
  9. scitex/audio/engines/elevenlabs_engine.py +143 -0
  10. scitex/audio/engines/gtts_engine.py +162 -0
  11. scitex/audio/engines/pyttsx3_engine.py +131 -0
  12. scitex/audio/mcp_server.py +757 -0
  13. scitex/bridge/_helpers.py +1 -1
  14. scitex/bridge/_plt_vis.py +1 -1
  15. scitex/bridge/_stats_vis.py +1 -1
  16. scitex/dev/plt/__init__.py +272 -0
  17. scitex/dev/plt/plot_mpl_axhline.py +28 -0
  18. scitex/dev/plt/plot_mpl_axhspan.py +28 -0
  19. scitex/dev/plt/plot_mpl_axvline.py +28 -0
  20. scitex/dev/plt/plot_mpl_axvspan.py +28 -0
  21. scitex/dev/plt/plot_mpl_bar.py +29 -0
  22. scitex/dev/plt/plot_mpl_barh.py +29 -0
  23. scitex/dev/plt/plot_mpl_boxplot.py +28 -0
  24. scitex/dev/plt/plot_mpl_contour.py +31 -0
  25. scitex/dev/plt/plot_mpl_contourf.py +31 -0
  26. scitex/dev/plt/plot_mpl_errorbar.py +30 -0
  27. scitex/dev/plt/plot_mpl_eventplot.py +28 -0
  28. scitex/dev/plt/plot_mpl_fill.py +30 -0
  29. scitex/dev/plt/plot_mpl_fill_between.py +31 -0
  30. scitex/dev/plt/plot_mpl_hexbin.py +28 -0
  31. scitex/dev/plt/plot_mpl_hist.py +28 -0
  32. scitex/dev/plt/plot_mpl_hist2d.py +28 -0
  33. scitex/dev/plt/plot_mpl_imshow.py +29 -0
  34. scitex/dev/plt/plot_mpl_pcolormesh.py +31 -0
  35. scitex/dev/plt/plot_mpl_pie.py +29 -0
  36. scitex/dev/plt/plot_mpl_plot.py +29 -0
  37. scitex/dev/plt/plot_mpl_quiver.py +31 -0
  38. scitex/dev/plt/plot_mpl_scatter.py +28 -0
  39. scitex/dev/plt/plot_mpl_stackplot.py +31 -0
  40. scitex/dev/plt/plot_mpl_stem.py +29 -0
  41. scitex/dev/plt/plot_mpl_step.py +29 -0
  42. scitex/dev/plt/plot_mpl_violinplot.py +28 -0
  43. scitex/dev/plt/plot_sns_barplot.py +29 -0
  44. scitex/dev/plt/plot_sns_boxplot.py +29 -0
  45. scitex/dev/plt/plot_sns_heatmap.py +28 -0
  46. scitex/dev/plt/plot_sns_histplot.py +29 -0
  47. scitex/dev/plt/plot_sns_kdeplot.py +29 -0
  48. scitex/dev/plt/plot_sns_lineplot.py +31 -0
  49. scitex/dev/plt/plot_sns_scatterplot.py +29 -0
  50. scitex/dev/plt/plot_sns_stripplot.py +29 -0
  51. scitex/dev/plt/plot_sns_swarmplot.py +29 -0
  52. scitex/dev/plt/plot_sns_violinplot.py +29 -0
  53. scitex/dev/plt/plot_stx_bar.py +29 -0
  54. scitex/dev/plt/plot_stx_barh.py +29 -0
  55. scitex/dev/plt/plot_stx_box.py +28 -0
  56. scitex/dev/plt/plot_stx_boxplot.py +28 -0
  57. scitex/dev/plt/plot_stx_conf_mat.py +28 -0
  58. scitex/dev/plt/plot_stx_contour.py +31 -0
  59. scitex/dev/plt/plot_stx_ecdf.py +28 -0
  60. scitex/dev/plt/plot_stx_errorbar.py +30 -0
  61. scitex/dev/plt/plot_stx_fill_between.py +31 -0
  62. scitex/dev/plt/plot_stx_fillv.py +28 -0
  63. scitex/dev/plt/plot_stx_heatmap.py +28 -0
  64. scitex/dev/plt/plot_stx_image.py +28 -0
  65. scitex/dev/plt/plot_stx_imshow.py +28 -0
  66. scitex/dev/plt/plot_stx_joyplot.py +28 -0
  67. scitex/dev/plt/plot_stx_kde.py +28 -0
  68. scitex/dev/plt/plot_stx_line.py +28 -0
  69. scitex/dev/plt/plot_stx_mean_ci.py +28 -0
  70. scitex/dev/plt/plot_stx_mean_std.py +28 -0
  71. scitex/dev/plt/plot_stx_median_iqr.py +28 -0
  72. scitex/dev/plt/plot_stx_raster.py +28 -0
  73. scitex/dev/plt/plot_stx_rectangle.py +28 -0
  74. scitex/dev/plt/plot_stx_scatter.py +29 -0
  75. scitex/dev/plt/plot_stx_shaded_line.py +29 -0
  76. scitex/dev/plt/plot_stx_violin.py +28 -0
  77. scitex/dev/plt/plot_stx_violinplot.py +28 -0
  78. scitex/diagram/README.md +197 -0
  79. scitex/diagram/__init__.py +48 -0
  80. scitex/diagram/_compile.py +312 -0
  81. scitex/diagram/_diagram.py +355 -0
  82. scitex/diagram/_presets.py +173 -0
  83. scitex/diagram/_schema.py +182 -0
  84. scitex/diagram/_split.py +278 -0
  85. scitex/fig/__init__.py +352 -0
  86. scitex/{vis → fig}/backend/_parser.py +1 -1
  87. scitex/{vis → fig}/canvas.py +1 -1
  88. scitex/{vis → fig}/editor/__init__.py +5 -2
  89. scitex/{vis → fig}/editor/_dearpygui_editor.py +1 -1
  90. scitex/{vis → fig}/editor/_defaults.py +70 -5
  91. scitex/{vis → fig}/editor/_mpl_editor.py +1 -1
  92. scitex/{vis → fig}/editor/_qt_editor.py +182 -2
  93. scitex/{vis → fig}/editor/_tkinter_editor.py +1 -1
  94. scitex/fig/editor/edit/__init__.py +50 -0
  95. scitex/fig/editor/edit/backend_detector.py +109 -0
  96. scitex/fig/editor/edit/bundle_resolver.py +240 -0
  97. scitex/fig/editor/edit/editor_launcher.py +239 -0
  98. scitex/fig/editor/edit/manual_handler.py +53 -0
  99. scitex/fig/editor/edit/panel_loader.py +232 -0
  100. scitex/fig/editor/edit/path_resolver.py +67 -0
  101. scitex/fig/editor/flask_editor/_bbox.py +1299 -0
  102. scitex/fig/editor/flask_editor/_core.py +1429 -0
  103. scitex/{vis → fig}/editor/flask_editor/_plotter.py +38 -4
  104. scitex/fig/editor/flask_editor/_renderer.py +813 -0
  105. scitex/fig/editor/flask_editor/static/css/base/reset.css +41 -0
  106. scitex/fig/editor/flask_editor/static/css/base/typography.css +16 -0
  107. scitex/fig/editor/flask_editor/static/css/base/variables.css +85 -0
  108. scitex/fig/editor/flask_editor/static/css/components/buttons.css +217 -0
  109. scitex/fig/editor/flask_editor/static/css/components/context-menu.css +93 -0
  110. scitex/fig/editor/flask_editor/static/css/components/dropdown.css +57 -0
  111. scitex/fig/editor/flask_editor/static/css/components/forms.css +112 -0
  112. scitex/fig/editor/flask_editor/static/css/components/modal.css +59 -0
  113. scitex/fig/editor/flask_editor/static/css/components/sections.css +212 -0
  114. scitex/fig/editor/flask_editor/static/css/features/canvas.css +176 -0
  115. scitex/fig/editor/flask_editor/static/css/features/element-inspector.css +190 -0
  116. scitex/fig/editor/flask_editor/static/css/features/loading.css +59 -0
  117. scitex/fig/editor/flask_editor/static/css/features/overlay.css +45 -0
  118. scitex/fig/editor/flask_editor/static/css/features/panel-grid.css +95 -0
  119. scitex/fig/editor/flask_editor/static/css/features/selection.css +101 -0
  120. scitex/fig/editor/flask_editor/static/css/features/statistics.css +138 -0
  121. scitex/fig/editor/flask_editor/static/css/index.css +31 -0
  122. scitex/fig/editor/flask_editor/static/css/layout/container.css +7 -0
  123. scitex/fig/editor/flask_editor/static/css/layout/controls.css +56 -0
  124. scitex/fig/editor/flask_editor/static/css/layout/preview.css +78 -0
  125. scitex/fig/editor/flask_editor/static/js/alignment/axis.js +314 -0
  126. scitex/fig/editor/flask_editor/static/js/alignment/basic.js +107 -0
  127. scitex/fig/editor/flask_editor/static/js/alignment/distribute.js +54 -0
  128. scitex/fig/editor/flask_editor/static/js/canvas/canvas.js +172 -0
  129. scitex/fig/editor/flask_editor/static/js/canvas/dragging.js +258 -0
  130. scitex/fig/editor/flask_editor/static/js/canvas/resize.js +48 -0
  131. scitex/fig/editor/flask_editor/static/js/canvas/selection.js +71 -0
  132. scitex/fig/editor/flask_editor/static/js/core/api.js +288 -0
  133. scitex/fig/editor/flask_editor/static/js/core/state.js +143 -0
  134. scitex/fig/editor/flask_editor/static/js/core/utils.js +245 -0
  135. scitex/fig/editor/flask_editor/static/js/dev/element-inspector.js +992 -0
  136. scitex/fig/editor/flask_editor/static/js/editor/bbox.js +339 -0
  137. scitex/fig/editor/flask_editor/static/js/editor/element-drag.js +286 -0
  138. scitex/fig/editor/flask_editor/static/js/editor/overlay.js +371 -0
  139. scitex/fig/editor/flask_editor/static/js/editor/preview.js +293 -0
  140. scitex/fig/editor/flask_editor/static/js/main.js +426 -0
  141. scitex/fig/editor/flask_editor/static/js/shortcuts/context-menu.js +152 -0
  142. scitex/fig/editor/flask_editor/static/js/shortcuts/keyboard.js +265 -0
  143. scitex/fig/editor/flask_editor/static/js/ui/controls.js +184 -0
  144. scitex/fig/editor/flask_editor/static/js/ui/download.js +57 -0
  145. scitex/fig/editor/flask_editor/static/js/ui/help.js +100 -0
  146. scitex/fig/editor/flask_editor/static/js/ui/theme.js +34 -0
  147. scitex/fig/editor/flask_editor/templates/__init__.py +123 -0
  148. scitex/fig/editor/flask_editor/templates/_html.py +852 -0
  149. scitex/fig/editor/flask_editor/templates/_scripts.py +4933 -0
  150. scitex/fig/editor/flask_editor/templates/_styles.py +1658 -0
  151. scitex/{vis → fig}/io/__init__.py +13 -1
  152. scitex/fig/io/_bundle.py +1058 -0
  153. scitex/{vis → fig}/io/_canvas.py +1 -1
  154. scitex/{vis → fig}/io/_data.py +1 -1
  155. scitex/{vis → fig}/io/_export.py +1 -1
  156. scitex/{vis → fig}/io/_load.py +1 -1
  157. scitex/{vis → fig}/io/_panel.py +1 -1
  158. scitex/{vis → fig}/io/_save.py +1 -1
  159. scitex/{vis → fig}/model/__init__.py +1 -1
  160. scitex/{vis → fig}/model/_annotations.py +1 -1
  161. scitex/{vis → fig}/model/_axes.py +1 -1
  162. scitex/{vis → fig}/model/_figure.py +1 -1
  163. scitex/{vis → fig}/model/_guides.py +1 -1
  164. scitex/{vis → fig}/model/_plot.py +1 -1
  165. scitex/{vis → fig}/model/_styles.py +1 -1
  166. scitex/{vis → fig}/utils/__init__.py +1 -1
  167. scitex/io/__init__.py +22 -26
  168. scitex/io/_bundle.py +493 -0
  169. scitex/io/_flush.py +5 -2
  170. scitex/io/_load.py +98 -0
  171. scitex/io/_load_modules/_H5Explorer.py +5 -2
  172. scitex/io/_load_modules/_canvas.py +2 -2
  173. scitex/io/_load_modules/_image.py +3 -4
  174. scitex/io/_load_modules/_txt.py +4 -2
  175. scitex/io/_metadata.py +34 -324
  176. scitex/io/_metadata_modules/__init__.py +46 -0
  177. scitex/io/_metadata_modules/_embed.py +70 -0
  178. scitex/io/_metadata_modules/_read.py +64 -0
  179. scitex/io/_metadata_modules/_utils.py +79 -0
  180. scitex/io/_metadata_modules/embed_metadata_jpeg.py +74 -0
  181. scitex/io/_metadata_modules/embed_metadata_pdf.py +53 -0
  182. scitex/io/_metadata_modules/embed_metadata_png.py +26 -0
  183. scitex/io/_metadata_modules/embed_metadata_svg.py +62 -0
  184. scitex/io/_metadata_modules/read_metadata_jpeg.py +57 -0
  185. scitex/io/_metadata_modules/read_metadata_pdf.py +51 -0
  186. scitex/io/_metadata_modules/read_metadata_png.py +39 -0
  187. scitex/io/_metadata_modules/read_metadata_svg.py +44 -0
  188. scitex/io/_qr_utils.py +5 -3
  189. scitex/io/_save.py +548 -30
  190. scitex/io/_save_modules/_canvas.py +3 -3
  191. scitex/io/_save_modules/_image.py +5 -9
  192. scitex/io/_save_modules/_tex.py +7 -4
  193. scitex/io/_zip_bundle.py +439 -0
  194. scitex/io/utils/h5_to_zarr.py +11 -9
  195. scitex/msword/__init__.py +255 -0
  196. scitex/msword/profiles.py +357 -0
  197. scitex/msword/reader.py +753 -0
  198. scitex/msword/utils.py +289 -0
  199. scitex/msword/writer.py +362 -0
  200. scitex/plt/__init__.py +5 -2
  201. scitex/plt/_subplots/_AxesWrapper.py +6 -6
  202. scitex/plt/_subplots/_AxisWrapper.py +15 -9
  203. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/__init__.py +36 -0
  204. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_labels.py +264 -0
  205. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_metadata.py +213 -0
  206. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_visual.py +128 -0
  207. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/__init__.py +59 -0
  208. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_base.py +34 -0
  209. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_scientific.py +593 -0
  210. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_statistical.py +654 -0
  211. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_stx_aliases.py +527 -0
  212. scitex/plt/_subplots/_AxisWrapperMixins/_RawMatplotlibMixin.py +321 -0
  213. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/__init__.py +33 -0
  214. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_base.py +152 -0
  215. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +600 -0
  216. scitex/plt/_subplots/_AxisWrapperMixins/__init__.py +79 -5
  217. scitex/plt/_subplots/_FigWrapper.py +6 -6
  218. scitex/plt/_subplots/_SubplotsWrapper.py +28 -18
  219. scitex/plt/_subplots/_export_as_csv.py +35 -5
  220. scitex/plt/_subplots/_export_as_csv_formatters/__init__.py +8 -0
  221. scitex/plt/_subplots/_export_as_csv_formatters/_format_annotate.py +10 -21
  222. scitex/plt/_subplots/_export_as_csv_formatters/_format_eventplot.py +18 -7
  223. scitex/plt/_subplots/_export_as_csv_formatters/_format_imshow2d.py +28 -12
  224. scitex/plt/_subplots/_export_as_csv_formatters/_format_matshow.py +10 -4
  225. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_imshow.py +13 -1
  226. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_kde.py +12 -2
  227. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_scatter.py +10 -3
  228. scitex/plt/_subplots/_export_as_csv_formatters/_format_quiver.py +10 -4
  229. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_jointplot.py +18 -3
  230. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_lineplot.py +44 -36
  231. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_pairplot.py +14 -2
  232. scitex/plt/_subplots/_export_as_csv_formatters/_format_streamplot.py +11 -5
  233. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_bar.py +84 -0
  234. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_barh.py +85 -0
  235. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_conf_mat.py +14 -3
  236. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_contour.py +54 -0
  237. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_ecdf.py +14 -2
  238. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_errorbar.py +120 -0
  239. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_heatmap.py +16 -6
  240. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_image.py +29 -19
  241. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_imshow.py +63 -0
  242. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_joyplot.py +22 -5
  243. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_mean_ci.py +18 -14
  244. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_mean_std.py +18 -14
  245. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_median_iqr.py +18 -14
  246. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_raster.py +10 -2
  247. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter.py +51 -0
  248. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter_hist.py +18 -9
  249. scitex/plt/ax/_plot/_stx_ecdf.py +4 -2
  250. scitex/plt/gallery/_generate.py +421 -14
  251. scitex/plt/io/__init__.py +53 -0
  252. scitex/plt/io/_bundle.py +490 -0
  253. scitex/plt/io/_layered_bundle.py +1343 -0
  254. scitex/plt/styles/SCITEX_STYLE.yaml +26 -0
  255. scitex/plt/styles/__init__.py +14 -0
  256. scitex/plt/styles/presets.py +78 -0
  257. scitex/plt/utils/__init__.py +13 -1
  258. scitex/plt/utils/_collect_figure_metadata.py +10 -14
  259. scitex/plt/utils/_configure_mpl.py +6 -18
  260. scitex/plt/utils/_crop.py +32 -14
  261. scitex/plt/utils/_csv_column_naming.py +54 -0
  262. scitex/plt/utils/_figure_mm.py +116 -1
  263. scitex/plt/utils/_hitmap.py +1643 -0
  264. scitex/plt/utils/metadata/__init__.py +25 -0
  265. scitex/plt/utils/metadata/_core.py +9 -10
  266. scitex/plt/utils/metadata/_dimensions.py +6 -3
  267. scitex/plt/utils/metadata/_editable_export.py +405 -0
  268. scitex/plt/utils/metadata/_geometry_extraction.py +570 -0
  269. scitex/schema/__init__.py +109 -16
  270. scitex/schema/_canvas.py +1 -1
  271. scitex/schema/_plot.py +1015 -0
  272. scitex/schema/_stats.py +2 -2
  273. scitex/stats/__init__.py +117 -0
  274. scitex/stats/io/__init__.py +29 -0
  275. scitex/stats/io/_bundle.py +156 -0
  276. scitex/tex/__init__.py +4 -0
  277. scitex/tex/_export.py +890 -0
  278. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/METADATA +11 -1
  279. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/RECORD +294 -170
  280. scitex/io/memo.md +0 -2827
  281. scitex/plt/REQUESTS.md +0 -191
  282. scitex/plt/_subplots/TODO.md +0 -53
  283. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin.py +0 -559
  284. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin.py +0 -1609
  285. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin.py +0 -447
  286. scitex/plt/templates/research-master/scitex/vis/gallery/area/fill_between.json +0 -110
  287. scitex/plt/templates/research-master/scitex/vis/gallery/area/fill_betweenx.json +0 -88
  288. scitex/plt/templates/research-master/scitex/vis/gallery/area/stx_fill_between.json +0 -103
  289. scitex/plt/templates/research-master/scitex/vis/gallery/area/stx_fillv.json +0 -106
  290. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/bar.json +0 -92
  291. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/barh.json +0 -92
  292. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/boxplot.json +0 -92
  293. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_bar.json +0 -84
  294. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_barh.json +0 -84
  295. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_box.json +0 -83
  296. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_boxplot.json +0 -93
  297. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_violin.json +0 -91
  298. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_violinplot.json +0 -91
  299. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/violinplot.json +0 -91
  300. scitex/plt/templates/research-master/scitex/vis/gallery/contour/contour.json +0 -97
  301. scitex/plt/templates/research-master/scitex/vis/gallery/contour/contourf.json +0 -98
  302. scitex/plt/templates/research-master/scitex/vis/gallery/contour/stx_contour.json +0 -84
  303. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/hist.json +0 -101
  304. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/hist2d.json +0 -96
  305. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_ecdf.json +0 -95
  306. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_joyplot.json +0 -95
  307. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_kde.json +0 -93
  308. scitex/plt/templates/research-master/scitex/vis/gallery/grid/imshow.json +0 -95
  309. scitex/plt/templates/research-master/scitex/vis/gallery/grid/matshow.json +0 -95
  310. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_conf_mat.json +0 -83
  311. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_heatmap.json +0 -92
  312. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_image.json +0 -121
  313. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_imshow.json +0 -84
  314. scitex/plt/templates/research-master/scitex/vis/gallery/line/plot.json +0 -110
  315. scitex/plt/templates/research-master/scitex/vis/gallery/line/step.json +0 -92
  316. scitex/plt/templates/research-master/scitex/vis/gallery/line/stx_line.json +0 -95
  317. scitex/plt/templates/research-master/scitex/vis/gallery/line/stx_shaded_line.json +0 -96
  318. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/hexbin.json +0 -95
  319. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/scatter.json +0 -95
  320. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/stem.json +0 -92
  321. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/stx_scatter.json +0 -84
  322. scitex/plt/templates/research-master/scitex/vis/gallery/special/pie.json +0 -94
  323. scitex/plt/templates/research-master/scitex/vis/gallery/special/stx_raster.json +0 -109
  324. scitex/plt/templates/research-master/scitex/vis/gallery/special/stx_rectangle.json +0 -108
  325. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/errorbar.json +0 -93
  326. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_errorbar.json +0 -84
  327. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_mean_ci.json +0 -96
  328. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_mean_std.json +0 -96
  329. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_median_iqr.json +0 -96
  330. scitex/plt/templates/research-master/scitex/vis/gallery/vector/quiver.json +0 -99
  331. scitex/plt/templates/research-master/scitex/vis/gallery/vector/streamplot.json +0 -100
  332. scitex/vis/__init__.py +0 -177
  333. scitex/vis/editor/_edit.py +0 -390
  334. scitex/vis/editor/flask_editor/_bbox.py +0 -529
  335. scitex/vis/editor/flask_editor/_core.py +0 -168
  336. scitex/vis/editor/flask_editor/_renderer.py +0 -393
  337. scitex/vis/editor/flask_editor/templates/__init__.py +0 -33
  338. scitex/vis/editor/flask_editor/templates/_html.py +0 -513
  339. scitex/vis/editor/flask_editor/templates/_scripts.py +0 -1261
  340. scitex/vis/editor/flask_editor/templates/_styles.py +0 -739
  341. /scitex/{vis → fig}/README.md +0 -0
  342. /scitex/{vis → fig}/backend/__init__.py +0 -0
  343. /scitex/{vis → fig}/backend/_export.py +0 -0
  344. /scitex/{vis → fig}/backend/_render.py +0 -0
  345. /scitex/{vis → fig}/docs/CANVAS_ARCHITECTURE.md +0 -0
  346. /scitex/{vis → fig}/editor/_flask_editor.py +0 -0
  347. /scitex/{vis → fig}/editor/flask_editor/__init__.py +0 -0
  348. /scitex/{vis → fig}/editor/flask_editor/_utils.py +0 -0
  349. /scitex/{vis → fig}/io/_directory.py +0 -0
  350. /scitex/{vis → fig}/model/_plot_types.py +0 -0
  351. /scitex/{vis → fig}/utils/_defaults.py +0 -0
  352. /scitex/{vis → fig}/utils/_validate.py +0 -0
  353. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/WHEEL +0 -0
  354. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/entry_points.txt +0 -0
  355. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/licenses/LICENSE +0 -0
scitex/bridge/_helpers.py CHANGED
@@ -117,7 +117,7 @@ def _detect_backend(target) -> Literal["plt", "vis"]:
117
117
  """
118
118
  # Check for vis FigureModel
119
119
  try:
120
- from scitex.vis.model import FigureModel
120
+ from scitex.fig.model import FigureModel
121
121
  if isinstance(target, FigureModel):
122
122
  return "vis"
123
123
  except ImportError:
scitex/bridge/_plt_vis.py CHANGED
@@ -14,7 +14,7 @@ Provides adapters to:
14
14
  from typing import Optional, Dict, Any, List, Tuple, Union
15
15
  import warnings
16
16
 
17
- from scitex.vis.model import (
17
+ from scitex.fig.model import (
18
18
  FigureModel,
19
19
  AxesModel,
20
20
  PlotModel,
@@ -27,7 +27,7 @@ When bridging between plt and vis, coordinate transformation may be needed.
27
27
  from typing import Optional, Dict, Any, List, Tuple
28
28
 
29
29
  from scitex.schema import StatResult, Position, StatPositioning
30
- from scitex.vis.model import AnnotationModel, FigureModel, AxesModel, TextStyle
30
+ from scitex.fig.model import AnnotationModel, FigureModel, AxesModel, TextStyle
31
31
 
32
32
 
33
33
  def stat_result_to_annotation(
@@ -0,0 +1,272 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: /home/ywatanabe/proj/scitex-code/src/scitex/dev/plt/__init__.py
4
+
5
+ """
6
+ Development plotting utilities with three API layers.
7
+
8
+ All plotters follow signature: (plt, rng, ax=None) -> (fig, ax)
9
+
10
+ API Layers:
11
+ -----------
12
+ stx_* : SciTeX canonical (ArrayLike input, tracked)
13
+ sns_* : Seaborn-style (DataFrame input, tracked)
14
+ mpl_* : Matplotlib-style (raw args, tracked)
15
+
16
+ Usage:
17
+ from scitex.dev.plt import PLOTTERS_STX, PLOTTERS_SNS, PLOTTERS_MPL
18
+
19
+ @stx.session
20
+ def main(plt=stx.INJECTED, rng_manager=stx.INJECTED):
21
+ rng = rng_manager("demo")
22
+
23
+ # stx_* API (ArrayLike)
24
+ for name, plotter in PLOTTERS_STX.items():
25
+ fig, ax = plotter(plt, rng)
26
+
27
+ # sns_* API (DataFrame)
28
+ for name, plotter in PLOTTERS_SNS.items():
29
+ fig, ax = plotter(plt, rng)
30
+
31
+ # mpl_* API (matplotlib-style)
32
+ for name, plotter in PLOTTERS_MPL.items():
33
+ fig, ax = plotter(plt, rng)
34
+ """
35
+
36
+ # =============================================================================
37
+ # stx_* API Layer - ArrayLike input (25 plotters)
38
+ # =============================================================================
39
+ from .plot_stx_line import plot_stx_line
40
+ from .plot_stx_mean_std import plot_stx_mean_std
41
+ from .plot_stx_mean_ci import plot_stx_mean_ci
42
+ from .plot_stx_median_iqr import plot_stx_median_iqr
43
+ from .plot_stx_shaded_line import plot_stx_shaded_line
44
+ from .plot_stx_box import plot_stx_box
45
+ from .plot_stx_violin import plot_stx_violin
46
+ from .plot_stx_scatter import plot_stx_scatter
47
+ from .plot_stx_bar import plot_stx_bar
48
+ from .plot_stx_barh import plot_stx_barh
49
+ from .plot_stx_errorbar import plot_stx_errorbar
50
+ from .plot_stx_fill_between import plot_stx_fill_between
51
+ from .plot_stx_kde import plot_stx_kde
52
+ from .plot_stx_ecdf import plot_stx_ecdf
53
+ from .plot_stx_heatmap import plot_stx_heatmap
54
+ from .plot_stx_image import plot_stx_image
55
+ from .plot_stx_imshow import plot_stx_imshow
56
+ from .plot_stx_contour import plot_stx_contour
57
+ from .plot_stx_raster import plot_stx_raster
58
+ from .plot_stx_conf_mat import plot_stx_conf_mat
59
+ from .plot_stx_joyplot import plot_stx_joyplot
60
+ from .plot_stx_rectangle import plot_stx_rectangle
61
+ from .plot_stx_fillv import plot_stx_fillv
62
+ from .plot_stx_boxplot import plot_stx_boxplot
63
+ from .plot_stx_violinplot import plot_stx_violinplot
64
+
65
+ PLOTTERS_STX = {
66
+ "stx_line": plot_stx_line,
67
+ "stx_mean_std": plot_stx_mean_std,
68
+ "stx_mean_ci": plot_stx_mean_ci,
69
+ "stx_median_iqr": plot_stx_median_iqr,
70
+ "stx_shaded_line": plot_stx_shaded_line,
71
+ "stx_box": plot_stx_box,
72
+ "stx_violin": plot_stx_violin,
73
+ "stx_scatter": plot_stx_scatter,
74
+ "stx_bar": plot_stx_bar,
75
+ "stx_barh": plot_stx_barh,
76
+ "stx_errorbar": plot_stx_errorbar,
77
+ "stx_fill_between": plot_stx_fill_between,
78
+ "stx_kde": plot_stx_kde,
79
+ "stx_ecdf": plot_stx_ecdf,
80
+ "stx_heatmap": plot_stx_heatmap,
81
+ "stx_image": plot_stx_image,
82
+ "stx_imshow": plot_stx_imshow,
83
+ "stx_contour": plot_stx_contour,
84
+ "stx_raster": plot_stx_raster,
85
+ "stx_conf_mat": plot_stx_conf_mat,
86
+ "stx_joyplot": plot_stx_joyplot,
87
+ "stx_rectangle": plot_stx_rectangle,
88
+ "stx_fillv": plot_stx_fillv,
89
+ "stx_boxplot": plot_stx_boxplot,
90
+ "stx_violinplot": plot_stx_violinplot,
91
+ }
92
+
93
+ # =============================================================================
94
+ # sns_* API Layer - DataFrame input (10 plotters)
95
+ # =============================================================================
96
+ from .plot_sns_boxplot import plot_sns_boxplot
97
+ from .plot_sns_violinplot import plot_sns_violinplot
98
+ from .plot_sns_barplot import plot_sns_barplot
99
+ from .plot_sns_histplot import plot_sns_histplot
100
+ from .plot_sns_kdeplot import plot_sns_kdeplot
101
+ from .plot_sns_scatterplot import plot_sns_scatterplot
102
+ from .plot_sns_lineplot import plot_sns_lineplot
103
+ from .plot_sns_swarmplot import plot_sns_swarmplot
104
+ from .plot_sns_stripplot import plot_sns_stripplot
105
+ from .plot_sns_heatmap import plot_sns_heatmap
106
+
107
+ PLOTTERS_SNS = {
108
+ "sns_boxplot": plot_sns_boxplot,
109
+ "sns_violinplot": plot_sns_violinplot,
110
+ "sns_barplot": plot_sns_barplot,
111
+ "sns_histplot": plot_sns_histplot,
112
+ "sns_kdeplot": plot_sns_kdeplot,
113
+ "sns_scatterplot": plot_sns_scatterplot,
114
+ "sns_lineplot": plot_sns_lineplot,
115
+ "sns_swarmplot": plot_sns_swarmplot,
116
+ "sns_stripplot": plot_sns_stripplot,
117
+ "sns_heatmap": plot_sns_heatmap,
118
+ }
119
+
120
+ # =============================================================================
121
+ # mpl_* API Layer - Matplotlib-style input (26 plotters)
122
+ # =============================================================================
123
+ from .plot_mpl_plot import plot_mpl_plot
124
+ from .plot_mpl_scatter import plot_mpl_scatter
125
+ from .plot_mpl_bar import plot_mpl_bar
126
+ from .plot_mpl_barh import plot_mpl_barh
127
+ from .plot_mpl_hist import plot_mpl_hist
128
+ from .plot_mpl_hist2d import plot_mpl_hist2d
129
+ from .plot_mpl_hexbin import plot_mpl_hexbin
130
+ from .plot_mpl_boxplot import plot_mpl_boxplot
131
+ from .plot_mpl_violinplot import plot_mpl_violinplot
132
+ from .plot_mpl_errorbar import plot_mpl_errorbar
133
+ from .plot_mpl_step import plot_mpl_step
134
+ from .plot_mpl_stem import plot_mpl_stem
135
+ from .plot_mpl_fill import plot_mpl_fill
136
+ from .plot_mpl_fill_between import plot_mpl_fill_between
137
+ from .plot_mpl_stackplot import plot_mpl_stackplot
138
+ from .plot_mpl_contour import plot_mpl_contour
139
+ from .plot_mpl_contourf import plot_mpl_contourf
140
+ from .plot_mpl_imshow import plot_mpl_imshow
141
+ from .plot_mpl_pcolormesh import plot_mpl_pcolormesh
142
+ from .plot_mpl_pie import plot_mpl_pie
143
+ from .plot_mpl_eventplot import plot_mpl_eventplot
144
+ from .plot_mpl_quiver import plot_mpl_quiver
145
+ from .plot_mpl_axhline import plot_mpl_axhline
146
+ from .plot_mpl_axvline import plot_mpl_axvline
147
+ from .plot_mpl_axhspan import plot_mpl_axhspan
148
+ from .plot_mpl_axvspan import plot_mpl_axvspan
149
+
150
+ PLOTTERS_MPL = {
151
+ "mpl_plot": plot_mpl_plot,
152
+ "mpl_scatter": plot_mpl_scatter,
153
+ "mpl_bar": plot_mpl_bar,
154
+ "mpl_barh": plot_mpl_barh,
155
+ "mpl_hist": plot_mpl_hist,
156
+ "mpl_hist2d": plot_mpl_hist2d,
157
+ "mpl_hexbin": plot_mpl_hexbin,
158
+ "mpl_boxplot": plot_mpl_boxplot,
159
+ "mpl_violinplot": plot_mpl_violinplot,
160
+ "mpl_errorbar": plot_mpl_errorbar,
161
+ "mpl_step": plot_mpl_step,
162
+ "mpl_stem": plot_mpl_stem,
163
+ "mpl_fill": plot_mpl_fill,
164
+ "mpl_fill_between": plot_mpl_fill_between,
165
+ "mpl_stackplot": plot_mpl_stackplot,
166
+ "mpl_contour": plot_mpl_contour,
167
+ "mpl_contourf": plot_mpl_contourf,
168
+ "mpl_imshow": plot_mpl_imshow,
169
+ "mpl_pcolormesh": plot_mpl_pcolormesh,
170
+ "mpl_pie": plot_mpl_pie,
171
+ "mpl_eventplot": plot_mpl_eventplot,
172
+ "mpl_quiver": plot_mpl_quiver,
173
+ "mpl_axhline": plot_mpl_axhline,
174
+ "mpl_axvline": plot_mpl_axvline,
175
+ "mpl_axhspan": plot_mpl_axhspan,
176
+ "mpl_axvspan": plot_mpl_axvspan,
177
+ }
178
+
179
+ # =============================================================================
180
+ # Combined registry
181
+ # =============================================================================
182
+ PLOTTERS = {**PLOTTERS_STX, **PLOTTERS_SNS, **PLOTTERS_MPL}
183
+
184
+
185
+ def get_plotter(name):
186
+ """Get a plotter function by name."""
187
+ if name in PLOTTERS:
188
+ return PLOTTERS[name]
189
+ raise KeyError(f"Unknown plotter: {name}. Available: {list(PLOTTERS.keys())}")
190
+
191
+
192
+ def list_plotters():
193
+ """List all available plotter names."""
194
+ return list(PLOTTERS.keys())
195
+
196
+
197
+ __all__ = [
198
+ # stx_* plotters (25)
199
+ "plot_stx_line",
200
+ "plot_stx_mean_std",
201
+ "plot_stx_mean_ci",
202
+ "plot_stx_median_iqr",
203
+ "plot_stx_shaded_line",
204
+ "plot_stx_box",
205
+ "plot_stx_violin",
206
+ "plot_stx_scatter",
207
+ "plot_stx_bar",
208
+ "plot_stx_barh",
209
+ "plot_stx_errorbar",
210
+ "plot_stx_fill_between",
211
+ "plot_stx_kde",
212
+ "plot_stx_ecdf",
213
+ "plot_stx_heatmap",
214
+ "plot_stx_image",
215
+ "plot_stx_imshow",
216
+ "plot_stx_contour",
217
+ "plot_stx_raster",
218
+ "plot_stx_conf_mat",
219
+ "plot_stx_joyplot",
220
+ "plot_stx_rectangle",
221
+ "plot_stx_fillv",
222
+ "plot_stx_boxplot",
223
+ "plot_stx_violinplot",
224
+ # sns_* plotters (10)
225
+ "plot_sns_boxplot",
226
+ "plot_sns_violinplot",
227
+ "plot_sns_barplot",
228
+ "plot_sns_histplot",
229
+ "plot_sns_kdeplot",
230
+ "plot_sns_scatterplot",
231
+ "plot_sns_lineplot",
232
+ "plot_sns_swarmplot",
233
+ "plot_sns_stripplot",
234
+ "plot_sns_heatmap",
235
+ # mpl_* plotters (26)
236
+ "plot_mpl_plot",
237
+ "plot_mpl_scatter",
238
+ "plot_mpl_bar",
239
+ "plot_mpl_barh",
240
+ "plot_mpl_hist",
241
+ "plot_mpl_hist2d",
242
+ "plot_mpl_hexbin",
243
+ "plot_mpl_boxplot",
244
+ "plot_mpl_violinplot",
245
+ "plot_mpl_errorbar",
246
+ "plot_mpl_step",
247
+ "plot_mpl_stem",
248
+ "plot_mpl_fill",
249
+ "plot_mpl_fill_between",
250
+ "plot_mpl_stackplot",
251
+ "plot_mpl_contour",
252
+ "plot_mpl_contourf",
253
+ "plot_mpl_imshow",
254
+ "plot_mpl_pcolormesh",
255
+ "plot_mpl_pie",
256
+ "plot_mpl_eventplot",
257
+ "plot_mpl_quiver",
258
+ "plot_mpl_axhline",
259
+ "plot_mpl_axvline",
260
+ "plot_mpl_axhspan",
261
+ "plot_mpl_axvspan",
262
+ # Registries
263
+ "PLOTTERS_STX",
264
+ "PLOTTERS_SNS",
265
+ "PLOTTERS_MPL",
266
+ "PLOTTERS",
267
+ # Helper functions
268
+ "get_plotter",
269
+ "list_plotters",
270
+ ]
271
+
272
+ # EOF
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_axhline.py - mpl_axhline demo
4
+
5
+ """mpl_axhline: horizontal line."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_axhline(plt, rng, ax=None):
11
+ """mpl_axhline - horizontal line.
12
+
13
+ Demonstrates: ax.mpl_axhline() - identical to ax.axhline()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ ax.plot(rng.uniform(0, 10, 20))
21
+ ax.mpl_axhline(y=5, color='r', linestyle='--', label='threshold')
22
+ ax.set_xyt("X", "Y", "mpl_axhline")
23
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
24
+ ax.legend()
25
+ return fig, ax
26
+
27
+
28
+ # EOF
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_axhspan.py - mpl_axhspan demo
4
+
5
+ """mpl_axhspan: horizontal span."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_axhspan(plt, rng, ax=None):
11
+ """mpl_axhspan - horizontal span.
12
+
13
+ Demonstrates: ax.mpl_axhspan() - identical to ax.axhspan()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ ax.plot(rng.uniform(0, 10, 20))
21
+ ax.mpl_axhspan(3, 7, alpha=0.3, color='yellow', label='range')
22
+ ax.set_xyt("X", "Y", "mpl_axhspan")
23
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
24
+ ax.legend()
25
+ return fig, ax
26
+
27
+
28
+ # EOF
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_axvline.py - mpl_axvline demo
4
+
5
+ """mpl_axvline: vertical line."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_axvline(plt, rng, ax=None):
11
+ """mpl_axvline - vertical line.
12
+
13
+ Demonstrates: ax.mpl_axvline() - identical to ax.axvline()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ ax.plot(rng.uniform(0, 10, 20))
21
+ ax.mpl_axvline(x=10, color='r', linestyle='--', label='event')
22
+ ax.set_xyt("X", "Y", "mpl_axvline")
23
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
24
+ ax.legend()
25
+ return fig, ax
26
+
27
+
28
+ # EOF
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_axvspan.py - mpl_axvspan demo
4
+
5
+ """mpl_axvspan: vertical span."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_axvspan(plt, rng, ax=None):
11
+ """mpl_axvspan - vertical span.
12
+
13
+ Demonstrates: ax.mpl_axvspan() - identical to ax.axvspan()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ ax.plot(rng.uniform(0, 10, 20))
21
+ ax.mpl_axvspan(5, 15, alpha=0.3, color='yellow', label='range')
22
+ ax.set_xyt("X", "Y", "mpl_axvspan")
23
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
24
+ ax.legend()
25
+ return fig, ax
26
+
27
+
28
+ # EOF
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_bar.py - mpl_bar demo
4
+
5
+ """mpl_bar: bar plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_bar(plt, rng, ax=None):
11
+ """mpl_bar - bar plot.
12
+
13
+ Demonstrates: ax.mpl_bar() - identical to ax.bar()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ x = [1, 2, 3, 4, 5]
21
+ height = rng.uniform(2, 8, 5)
22
+ ax.mpl_bar(x, height)
23
+ ax.set_xyt("X", "Y", "mpl_bar")
24
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
25
+ ax.legend()
26
+ return fig, ax
27
+
28
+
29
+ # EOF
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_barh.py - mpl_barh demo
4
+
5
+ """mpl_barh: horizontal bar."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_barh(plt, rng, ax=None):
11
+ """mpl_barh - horizontal bar.
12
+
13
+ Demonstrates: ax.mpl_barh() - identical to ax.barh()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ y = [1, 2, 3, 4, 5]
21
+ width = rng.uniform(2, 8, 5)
22
+ ax.mpl_barh(y, width)
23
+ ax.set_xyt("X", "Y", "mpl_barh")
24
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
25
+ ax.legend()
26
+ return fig, ax
27
+
28
+
29
+ # EOF
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_boxplot.py - mpl_boxplot demo
4
+
5
+ """mpl_boxplot: box plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_boxplot(plt, rng, ax=None):
11
+ """mpl_boxplot - box plot.
12
+
13
+ Demonstrates: ax.mpl_boxplot() - identical to ax.boxplot()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ data = [rng.normal(i, 1, 100) for i in range(4)]
21
+ ax.mpl_boxplot(data, tick_labels=['A', 'B', 'C', 'D'])
22
+ ax.set_xyt("X", "Y", "mpl_boxplot")
23
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
24
+ ax.legend()
25
+ return fig, ax
26
+
27
+
28
+ # EOF
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_contour.py - mpl_contour demo
4
+
5
+ """mpl_contour: contour plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_contour(plt, rng, ax=None):
11
+ """mpl_contour - contour plot.
12
+
13
+ Demonstrates: ax.mpl_contour() - identical to ax.contour()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ x = np.linspace(-3, 3, 50)
21
+ y = np.linspace(-3, 3, 50)
22
+ X, Y = np.meshgrid(x, y)
23
+ Z = np.exp(-(X**2 + Y**2))
24
+ ax.mpl_contour(X, Y, Z, levels=10)
25
+ ax.set_xyt("X", "Y", "mpl_contour")
26
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
27
+ ax.legend()
28
+ return fig, ax
29
+
30
+
31
+ # EOF
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_contourf.py - mpl_contourf demo
4
+
5
+ """mpl_contourf: filled contour."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_contourf(plt, rng, ax=None):
11
+ """mpl_contourf - filled contour.
12
+
13
+ Demonstrates: ax.mpl_contourf() - identical to ax.contourf()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ x = np.linspace(-3, 3, 50)
21
+ y = np.linspace(-3, 3, 50)
22
+ X, Y = np.meshgrid(x, y)
23
+ Z = np.exp(-(X**2 + Y**2))
24
+ ax.mpl_contourf(X, Y, Z, levels=10)
25
+ ax.set_xyt("X", "Y", "mpl_contourf")
26
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
27
+ ax.legend()
28
+ return fig, ax
29
+
30
+
31
+ # EOF
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_errorbar.py - mpl_errorbar demo
4
+
5
+ """mpl_errorbar: error bar."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_errorbar(plt, rng, ax=None):
11
+ """mpl_errorbar - error bar.
12
+
13
+ Demonstrates: ax.mpl_errorbar() - identical to ax.errorbar()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ x = np.arange(1, 6)
21
+ y = rng.uniform(2, 8, 5)
22
+ yerr = rng.uniform(0.5, 1.5, 5)
23
+ ax.mpl_errorbar(x, y, yerr=yerr, fmt='o-', capsize=3)
24
+ ax.set_xyt("X", "Y", "mpl_errorbar")
25
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
26
+ ax.legend()
27
+ return fig, ax
28
+
29
+
30
+ # EOF
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_eventplot.py - mpl_eventplot demo
4
+
5
+ """mpl_eventplot: event plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_eventplot(plt, rng, ax=None):
11
+ """mpl_eventplot - event plot.
12
+
13
+ Demonstrates: ax.mpl_eventplot() - identical to ax.eventplot()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ positions = [rng.uniform(0, 10, rng.integers(5, 15)) for _ in range(5)]
21
+ ax.mpl_eventplot(positions, orientation='horizontal')
22
+ ax.set_xyt("X", "Y", "mpl_eventplot")
23
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
24
+ ax.legend()
25
+ return fig, ax
26
+
27
+
28
+ # EOF
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_fill.py - mpl_fill demo
4
+
5
+ """mpl_fill: filled polygon."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_fill(plt, rng, ax=None):
11
+ """mpl_fill - filled polygon.
12
+
13
+ Demonstrates: ax.mpl_fill() - identical to ax.fill()
14
+ """
15
+ if ax is None:
16
+ fig, ax = plt.subplots()
17
+ else:
18
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
19
+
20
+ theta = np.linspace(0, 2*np.pi, 100)
21
+ r = 1 + 0.3 * np.sin(5 * theta)
22
+ x, y = r * np.cos(theta), r * np.sin(theta)
23
+ ax.mpl_fill(x, y, alpha=0.5)
24
+ ax.set_xyt("X", "Y", "mpl_fill")
25
+ if hasattr(ax, 'legend') and ax.get_legend_handles_labels()[0]:
26
+ ax.legend()
27
+ return fig, ax
28
+
29
+
30
+ # EOF