scitex 2.7.0__py3-none-any.whl → 2.7.3__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 (297) 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/fig/__init__.py +352 -0
  79. scitex/{vis → fig}/backend/_parser.py +1 -1
  80. scitex/{vis → fig}/canvas.py +1 -1
  81. scitex/{vis → fig}/editor/_defaults.py +70 -5
  82. scitex/fig/editor/_edit.py +751 -0
  83. scitex/{vis → fig}/editor/_qt_editor.py +181 -1
  84. scitex/fig/editor/flask_editor/_bbox.py +1276 -0
  85. scitex/fig/editor/flask_editor/_core.py +624 -0
  86. scitex/{vis → fig}/editor/flask_editor/_plotter.py +38 -4
  87. scitex/fig/editor/flask_editor/_renderer.py +739 -0
  88. scitex/{vis → fig}/editor/flask_editor/templates/__init__.py +1 -1
  89. scitex/fig/editor/flask_editor/templates/_html.py +834 -0
  90. scitex/fig/editor/flask_editor/templates/_scripts.py +3136 -0
  91. scitex/{vis → fig}/editor/flask_editor/templates/_styles.py +625 -18
  92. scitex/{vis → fig}/io/__init__.py +13 -1
  93. scitex/fig/io/_bundle.py +973 -0
  94. scitex/{vis → fig}/io/_canvas.py +1 -1
  95. scitex/{vis → fig}/io/_data.py +1 -1
  96. scitex/{vis → fig}/io/_export.py +1 -1
  97. scitex/{vis → fig}/io/_load.py +1 -1
  98. scitex/{vis → fig}/io/_panel.py +1 -1
  99. scitex/{vis → fig}/io/_save.py +1 -1
  100. scitex/{vis → fig}/model/__init__.py +1 -1
  101. scitex/{vis → fig}/model/_annotations.py +1 -1
  102. scitex/{vis → fig}/model/_axes.py +1 -1
  103. scitex/{vis → fig}/model/_figure.py +1 -1
  104. scitex/{vis → fig}/model/_guides.py +1 -1
  105. scitex/{vis → fig}/model/_plot.py +1 -1
  106. scitex/{vis → fig}/model/_styles.py +1 -1
  107. scitex/{vis → fig}/utils/__init__.py +1 -1
  108. scitex/io/__init__.py +10 -26
  109. scitex/io/_bundle.py +434 -0
  110. scitex/io/_flush.py +5 -2
  111. scitex/io/_load.py +98 -0
  112. scitex/io/_load_modules/_H5Explorer.py +5 -2
  113. scitex/io/_load_modules/_canvas.py +2 -2
  114. scitex/io/_load_modules/_image.py +3 -4
  115. scitex/io/_load_modules/_txt.py +4 -2
  116. scitex/io/_metadata.py +34 -324
  117. scitex/io/_metadata_modules/__init__.py +46 -0
  118. scitex/io/_metadata_modules/_embed.py +70 -0
  119. scitex/io/_metadata_modules/_read.py +64 -0
  120. scitex/io/_metadata_modules/_utils.py +79 -0
  121. scitex/io/_metadata_modules/embed_metadata_jpeg.py +74 -0
  122. scitex/io/_metadata_modules/embed_metadata_pdf.py +53 -0
  123. scitex/io/_metadata_modules/embed_metadata_png.py +26 -0
  124. scitex/io/_metadata_modules/embed_metadata_svg.py +62 -0
  125. scitex/io/_metadata_modules/read_metadata_jpeg.py +57 -0
  126. scitex/io/_metadata_modules/read_metadata_pdf.py +51 -0
  127. scitex/io/_metadata_modules/read_metadata_png.py +39 -0
  128. scitex/io/_metadata_modules/read_metadata_svg.py +44 -0
  129. scitex/io/_qr_utils.py +5 -3
  130. scitex/io/_save.py +548 -30
  131. scitex/io/_save_modules/_canvas.py +3 -3
  132. scitex/io/_save_modules/_image.py +5 -9
  133. scitex/io/_save_modules/_tex.py +7 -4
  134. scitex/io/utils/h5_to_zarr.py +11 -9
  135. scitex/msword/__init__.py +255 -0
  136. scitex/msword/profiles.py +357 -0
  137. scitex/msword/reader.py +753 -0
  138. scitex/msword/utils.py +289 -0
  139. scitex/msword/writer.py +362 -0
  140. scitex/plt/__init__.py +5 -2
  141. scitex/plt/_subplots/_AxesWrapper.py +6 -6
  142. scitex/plt/_subplots/_AxisWrapper.py +15 -9
  143. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/__init__.py +36 -0
  144. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_labels.py +264 -0
  145. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_metadata.py +213 -0
  146. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_visual.py +128 -0
  147. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/__init__.py +59 -0
  148. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_base.py +34 -0
  149. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_scientific.py +593 -0
  150. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_statistical.py +654 -0
  151. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_stx_aliases.py +527 -0
  152. scitex/plt/_subplots/_AxisWrapperMixins/_RawMatplotlibMixin.py +321 -0
  153. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/__init__.py +33 -0
  154. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_base.py +152 -0
  155. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +600 -0
  156. scitex/plt/_subplots/_AxisWrapperMixins/__init__.py +79 -5
  157. scitex/plt/_subplots/_FigWrapper.py +6 -6
  158. scitex/plt/_subplots/_SubplotsWrapper.py +28 -18
  159. scitex/plt/_subplots/_export_as_csv.py +35 -5
  160. scitex/plt/_subplots/_export_as_csv_formatters/__init__.py +8 -0
  161. scitex/plt/_subplots/_export_as_csv_formatters/_format_annotate.py +10 -21
  162. scitex/plt/_subplots/_export_as_csv_formatters/_format_eventplot.py +18 -7
  163. scitex/plt/_subplots/_export_as_csv_formatters/_format_imshow2d.py +28 -12
  164. scitex/plt/_subplots/_export_as_csv_formatters/_format_matshow.py +10 -4
  165. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_imshow.py +13 -1
  166. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_kde.py +12 -2
  167. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_scatter.py +10 -3
  168. scitex/plt/_subplots/_export_as_csv_formatters/_format_quiver.py +10 -4
  169. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_jointplot.py +18 -3
  170. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_lineplot.py +44 -36
  171. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_pairplot.py +14 -2
  172. scitex/plt/_subplots/_export_as_csv_formatters/_format_streamplot.py +11 -5
  173. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_bar.py +84 -0
  174. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_barh.py +85 -0
  175. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_conf_mat.py +14 -3
  176. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_contour.py +54 -0
  177. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_ecdf.py +14 -2
  178. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_errorbar.py +120 -0
  179. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_heatmap.py +16 -6
  180. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_image.py +29 -19
  181. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_imshow.py +63 -0
  182. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_joyplot.py +22 -5
  183. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_mean_ci.py +18 -14
  184. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_mean_std.py +18 -14
  185. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_median_iqr.py +18 -14
  186. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_raster.py +10 -2
  187. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter.py +51 -0
  188. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter_hist.py +18 -9
  189. scitex/plt/ax/_plot/_stx_ecdf.py +4 -2
  190. scitex/plt/gallery/_generate.py +421 -14
  191. scitex/plt/io/__init__.py +53 -0
  192. scitex/plt/io/_bundle.py +490 -0
  193. scitex/plt/io/_layered_bundle.py +1343 -0
  194. scitex/plt/styles/SCITEX_STYLE.yaml +26 -0
  195. scitex/plt/styles/__init__.py +14 -0
  196. scitex/plt/styles/presets.py +78 -0
  197. scitex/plt/utils/__init__.py +13 -1
  198. scitex/plt/utils/_collect_figure_metadata.py +10 -14
  199. scitex/plt/utils/_configure_mpl.py +6 -18
  200. scitex/plt/utils/_crop.py +32 -14
  201. scitex/plt/utils/_csv_column_naming.py +54 -0
  202. scitex/plt/utils/_figure_mm.py +116 -1
  203. scitex/plt/utils/_hitmap.py +1643 -0
  204. scitex/plt/utils/metadata/__init__.py +25 -0
  205. scitex/plt/utils/metadata/_core.py +9 -10
  206. scitex/plt/utils/metadata/_dimensions.py +6 -3
  207. scitex/plt/utils/metadata/_editable_export.py +405 -0
  208. scitex/plt/utils/metadata/_geometry_extraction.py +570 -0
  209. scitex/schema/__init__.py +109 -16
  210. scitex/schema/_canvas.py +1 -1
  211. scitex/schema/_plot.py +1015 -0
  212. scitex/schema/_stats.py +2 -2
  213. scitex/stats/__init__.py +117 -0
  214. scitex/stats/io/__init__.py +29 -0
  215. scitex/stats/io/_bundle.py +156 -0
  216. scitex/tex/__init__.py +4 -0
  217. scitex/tex/_export.py +890 -0
  218. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/METADATA +11 -1
  219. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/RECORD +238 -170
  220. scitex/io/memo.md +0 -2827
  221. scitex/plt/REQUESTS.md +0 -191
  222. scitex/plt/_subplots/TODO.md +0 -53
  223. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin.py +0 -559
  224. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin.py +0 -1609
  225. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin.py +0 -447
  226. scitex/plt/templates/research-master/scitex/vis/gallery/area/fill_between.json +0 -110
  227. scitex/plt/templates/research-master/scitex/vis/gallery/area/fill_betweenx.json +0 -88
  228. scitex/plt/templates/research-master/scitex/vis/gallery/area/stx_fill_between.json +0 -103
  229. scitex/plt/templates/research-master/scitex/vis/gallery/area/stx_fillv.json +0 -106
  230. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/bar.json +0 -92
  231. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/barh.json +0 -92
  232. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/boxplot.json +0 -92
  233. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_bar.json +0 -84
  234. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_barh.json +0 -84
  235. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_box.json +0 -83
  236. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_boxplot.json +0 -93
  237. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_violin.json +0 -91
  238. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_violinplot.json +0 -91
  239. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/violinplot.json +0 -91
  240. scitex/plt/templates/research-master/scitex/vis/gallery/contour/contour.json +0 -97
  241. scitex/plt/templates/research-master/scitex/vis/gallery/contour/contourf.json +0 -98
  242. scitex/plt/templates/research-master/scitex/vis/gallery/contour/stx_contour.json +0 -84
  243. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/hist.json +0 -101
  244. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/hist2d.json +0 -96
  245. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_ecdf.json +0 -95
  246. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_joyplot.json +0 -95
  247. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_kde.json +0 -93
  248. scitex/plt/templates/research-master/scitex/vis/gallery/grid/imshow.json +0 -95
  249. scitex/plt/templates/research-master/scitex/vis/gallery/grid/matshow.json +0 -95
  250. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_conf_mat.json +0 -83
  251. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_heatmap.json +0 -92
  252. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_image.json +0 -121
  253. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_imshow.json +0 -84
  254. scitex/plt/templates/research-master/scitex/vis/gallery/line/plot.json +0 -110
  255. scitex/plt/templates/research-master/scitex/vis/gallery/line/step.json +0 -92
  256. scitex/plt/templates/research-master/scitex/vis/gallery/line/stx_line.json +0 -95
  257. scitex/plt/templates/research-master/scitex/vis/gallery/line/stx_shaded_line.json +0 -96
  258. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/hexbin.json +0 -95
  259. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/scatter.json +0 -95
  260. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/stem.json +0 -92
  261. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/stx_scatter.json +0 -84
  262. scitex/plt/templates/research-master/scitex/vis/gallery/special/pie.json +0 -94
  263. scitex/plt/templates/research-master/scitex/vis/gallery/special/stx_raster.json +0 -109
  264. scitex/plt/templates/research-master/scitex/vis/gallery/special/stx_rectangle.json +0 -108
  265. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/errorbar.json +0 -93
  266. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_errorbar.json +0 -84
  267. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_mean_ci.json +0 -96
  268. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_mean_std.json +0 -96
  269. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_median_iqr.json +0 -96
  270. scitex/plt/templates/research-master/scitex/vis/gallery/vector/quiver.json +0 -99
  271. scitex/plt/templates/research-master/scitex/vis/gallery/vector/streamplot.json +0 -100
  272. scitex/vis/__init__.py +0 -177
  273. scitex/vis/editor/_edit.py +0 -390
  274. scitex/vis/editor/flask_editor/_bbox.py +0 -529
  275. scitex/vis/editor/flask_editor/_core.py +0 -168
  276. scitex/vis/editor/flask_editor/_renderer.py +0 -393
  277. scitex/vis/editor/flask_editor/templates/_html.py +0 -513
  278. scitex/vis/editor/flask_editor/templates/_scripts.py +0 -1261
  279. /scitex/{vis → fig}/README.md +0 -0
  280. /scitex/{vis → fig}/backend/__init__.py +0 -0
  281. /scitex/{vis → fig}/backend/_export.py +0 -0
  282. /scitex/{vis → fig}/backend/_render.py +0 -0
  283. /scitex/{vis → fig}/docs/CANVAS_ARCHITECTURE.md +0 -0
  284. /scitex/{vis → fig}/editor/__init__.py +0 -0
  285. /scitex/{vis → fig}/editor/_dearpygui_editor.py +0 -0
  286. /scitex/{vis → fig}/editor/_flask_editor.py +0 -0
  287. /scitex/{vis → fig}/editor/_mpl_editor.py +0 -0
  288. /scitex/{vis → fig}/editor/_tkinter_editor.py +0 -0
  289. /scitex/{vis → fig}/editor/flask_editor/__init__.py +0 -0
  290. /scitex/{vis → fig}/editor/flask_editor/_utils.py +0 -0
  291. /scitex/{vis → fig}/io/_directory.py +0 -0
  292. /scitex/{vis → fig}/model/_plot_types.py +0 -0
  293. /scitex/{vis → fig}/utils/_defaults.py +0 -0
  294. /scitex/{vis → fig}/utils/_validate.py +0 -0
  295. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/WHEEL +0 -0
  296. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/entry_points.txt +0 -0
  297. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_fill_between.py - mpl_fill_between demo
4
+
5
+ """mpl_fill_between: fill between."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_fill_between(plt, rng, ax=None):
11
+ """mpl_fill_between - fill between.
12
+
13
+ Demonstrates: ax.mpl_fill_between() - identical to ax.fill_between()
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(0, 2*np.pi, 100)
21
+ y1, y2 = np.sin(x), np.sin(x) + 0.5
22
+ ax.mpl_fill_between(x, y1, y2, alpha=0.3)
23
+ ax.plot(x, y1)
24
+ ax.plot(x, y2)
25
+ ax.set_xyt("X", "Y", "mpl_fill_between")
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,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_hexbin.py - mpl_hexbin demo
4
+
5
+ """mpl_hexbin: hexbin plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_hexbin(plt, rng, ax=None):
11
+ """mpl_hexbin - hexbin plot.
12
+
13
+ Demonstrates: ax.mpl_hexbin() - identical to ax.hexbin()
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, y = rng.normal(0, 1, 1000), rng.normal(0, 1, 1000)
21
+ ax.mpl_hexbin(x, y, gridsize=15)
22
+ ax.set_xyt("X", "Y", "mpl_hexbin")
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_hist.py - mpl_hist demo
4
+
5
+ """mpl_hist: histogram."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_hist(plt, rng, ax=None):
11
+ """mpl_hist - histogram.
12
+
13
+ Demonstrates: ax.mpl_hist() - identical to ax.hist()
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.standard_normal(1000)
21
+ ax.mpl_hist(data, bins=30, edgecolor='white', alpha=0.8)
22
+ ax.set_xyt("X", "Y", "mpl_hist")
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_hist2d.py - mpl_hist2d demo
4
+
5
+ """mpl_hist2d: 2D histogram."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_hist2d(plt, rng, ax=None):
11
+ """mpl_hist2d - 2D histogram.
12
+
13
+ Demonstrates: ax.mpl_hist2d() - identical to ax.hist2d()
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, y = rng.normal(0, 1, 1000), rng.normal(0, 1, 1000)
21
+ ax.mpl_hist2d(x, y, bins=20)
22
+ ax.set_xyt("X", "Y", "mpl_hist2d")
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_imshow.py - mpl_imshow demo
4
+
5
+ """mpl_imshow: image show."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_imshow(plt, rng, ax=None):
11
+ """mpl_imshow - image show.
12
+
13
+ Demonstrates: ax.mpl_imshow() - identical to ax.imshow()
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.uniform(0, 1, (10, 10))
21
+ im = ax.mpl_imshow(data, cmap='viridis', aspect='auto')
22
+ fig.colorbar(im, ax=ax)
23
+ ax.set_xyt("X", "Y", "mpl_imshow")
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,31 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_pcolormesh.py - mpl_pcolormesh demo
4
+
5
+ """mpl_pcolormesh: pseudocolor mesh."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_pcolormesh(plt, rng, ax=None):
11
+ """mpl_pcolormesh - pseudocolor mesh.
12
+
13
+ Demonstrates: ax.mpl_pcolormesh() - identical to ax.pcolormesh()
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(0, 5, 20)
21
+ y = np.linspace(0, 5, 20)
22
+ X, Y = np.meshgrid(x, y)
23
+ Z = np.sin(X) * np.cos(Y)
24
+ ax.mpl_pcolormesh(X, Y, Z, shading='auto')
25
+ ax.set_xyt("X", "Y", "mpl_pcolormesh")
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,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_pie.py - mpl_pie demo
4
+
5
+ """mpl_pie: pie chart."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_pie(plt, rng, ax=None):
11
+ """mpl_pie - pie chart.
12
+
13
+ Demonstrates: ax.mpl_pie() - identical to ax.pie()
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
+ sizes = rng.uniform(10, 30, 5)
21
+ labels = ['A', 'B', 'C', 'D', 'E']
22
+ ax.mpl_pie(sizes, labels=labels, autopct='%1.1f%%')
23
+ ax.set_xyt("X", "Y", "mpl_pie")
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_plot.py - mpl_plot demo
4
+
5
+ """mpl_plot: line plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_plot(plt, rng, ax=None):
11
+ """mpl_plot - line plot.
12
+
13
+ Demonstrates: ax.mpl_plot() - identical to ax.plot()
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(0, 2*np.pi, 100)
21
+ ax.mpl_plot(x, np.sin(x), '-', label='sin(x)')
22
+ ax.mpl_plot(x, np.cos(x), '--', label='cos(x)')
23
+ ax.set_xyt("X", "Y", "mpl_plot")
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,31 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_quiver.py - mpl_quiver demo
4
+
5
+ """mpl_quiver: vector field."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_quiver(plt, rng, ax=None):
11
+ """mpl_quiver - vector field.
12
+
13
+ Demonstrates: ax.mpl_quiver() - identical to ax.quiver()
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(0, 5, 0.5)
21
+ y = np.arange(0, 5, 0.5)
22
+ X, Y = np.meshgrid(x, y)
23
+ U, V = np.cos(X), np.sin(Y)
24
+ ax.mpl_quiver(X, Y, U, V)
25
+ ax.set_xyt("X", "Y", "mpl_quiver")
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,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_scatter.py - mpl_scatter demo
4
+
5
+ """mpl_scatter: scatter plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_scatter(plt, rng, ax=None):
11
+ """mpl_scatter - scatter plot.
12
+
13
+ Demonstrates: ax.mpl_scatter() - identical to ax.scatter()
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, y = rng.uniform(0, 10, 50), rng.uniform(0, 10, 50)
21
+ ax.mpl_scatter(x, y, c=rng.uniform(0, 1, 50), cmap='viridis')
22
+ ax.set_xyt("X", "Y", "mpl_scatter")
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_stackplot.py - mpl_stackplot demo
4
+
5
+ """mpl_stackplot: stacked area."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_stackplot(plt, rng, ax=None):
11
+ """mpl_stackplot - stacked area.
12
+
13
+ Demonstrates: ax.mpl_stackplot() - identical to ax.stackplot()
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(10)
21
+ y1 = rng.uniform(1, 3, 10)
22
+ y2 = rng.uniform(1, 3, 10)
23
+ y3 = rng.uniform(1, 3, 10)
24
+ ax.mpl_stackplot(x, y1, y2, y3, labels=['A', 'B', 'C'])
25
+ ax.set_xyt("X", "Y", "mpl_stackplot")
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,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_mpl_stem.py - mpl_stem demo
4
+
5
+ """mpl_stem: stem plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_stem(plt, rng, ax=None):
11
+ """mpl_stem - stem plot.
12
+
13
+ Demonstrates: ax.mpl_stem() - identical to ax.stem()
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(20)
21
+ y = rng.uniform(-1, 1, 20)
22
+ ax.mpl_stem(x, y)
23
+ ax.set_xyt("X", "Y", "mpl_stem")
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_step.py - mpl_step demo
4
+
5
+ """mpl_step: step plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_step(plt, rng, ax=None):
11
+ """mpl_step - step plot.
12
+
13
+ Demonstrates: ax.mpl_step() - identical to ax.step()
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(20)
21
+ y = rng.integers(0, 10, 20)
22
+ ax.mpl_step(x, y, where='mid', label='step')
23
+ ax.set_xyt("X", "Y", "mpl_step")
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_violinplot.py - mpl_violinplot demo
4
+
5
+ """mpl_violinplot: violin plot."""
6
+
7
+ import numpy as np
8
+
9
+
10
+ def plot_mpl_violinplot(plt, rng, ax=None):
11
+ """mpl_violinplot - violin plot.
12
+
13
+ Demonstrates: ax.mpl_violinplot() - identical to ax.violinplot()
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_violinplot(data)
22
+ ax.set_xyt("X", "Y", "mpl_violinplot")
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_sns_barplot.py - sns_barplot demo
4
+
5
+ """sns_barplot: DataFrame grouping."""
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+
11
+ def plot_sns_barplot(plt, rng, ax=None):
12
+ """sns_barplot - DataFrame grouping.
13
+
14
+ Demonstrates: ax.sns_barplot(data=df, ...)
15
+ """
16
+ if ax is None:
17
+ fig, ax = plt.subplots()
18
+ else:
19
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
20
+
21
+ n = 100
22
+ groups = rng.choice(['A', 'B', 'C'], n)
23
+ df = pd.DataFrame({'group': groups, 'value': rng.normal(0, 1, n) + np.where(groups == 'A', 0, np.where(groups == 'B', 1, 2))})
24
+ ax.sns_barplot(data=df, x='group', y='value')
25
+ ax.set_xyt("X", "Y", "sns_barplot")
26
+ return fig, ax
27
+
28
+
29
+ # EOF
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_sns_boxplot.py - sns_boxplot demo
4
+
5
+ """sns_boxplot: DataFrame grouping."""
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+
11
+ def plot_sns_boxplot(plt, rng, ax=None):
12
+ """sns_boxplot - DataFrame grouping.
13
+
14
+ Demonstrates: ax.sns_boxplot(data=df, ...)
15
+ """
16
+ if ax is None:
17
+ fig, ax = plt.subplots()
18
+ else:
19
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
20
+
21
+ n = 100
22
+ groups = rng.choice(['A', 'B', 'C'], n)
23
+ df = pd.DataFrame({'group': groups, 'value': rng.normal(0, 1, n) + np.where(groups == 'A', 0, np.where(groups == 'B', 1, 2))})
24
+ ax.sns_boxplot(data=df, x='group', y='value')
25
+ ax.set_xyt("X", "Y", "sns_boxplot")
26
+ return fig, ax
27
+
28
+
29
+ # EOF
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_sns_heatmap.py - sns_heatmap demo
4
+
5
+ """sns_heatmap: DataFrame heatmap."""
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+
11
+ def plot_sns_heatmap(plt, rng, ax=None):
12
+ """sns_heatmap - DataFrame heatmap.
13
+
14
+ Demonstrates: ax.sns_heatmap(data=df, ...)
15
+ """
16
+ if ax is None:
17
+ fig, ax = plt.subplots()
18
+ else:
19
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
20
+
21
+ n = 100
22
+ data = pd.DataFrame(rng.uniform(0, 1, (5, 5)), index=['A', 'B', 'C', 'D', 'E'], columns=['V1', 'V2', 'V3', 'V4', 'V5'])
23
+ ax.sns_heatmap(data, annot=True, fmt='.2f')
24
+ ax.set_xyt("X", "Y", "sns_heatmap")
25
+ return fig, ax
26
+
27
+
28
+ # EOF
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_sns_histplot.py - sns_histplot demo
4
+
5
+ """sns_histplot: DataFrame with hue."""
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+
11
+ def plot_sns_histplot(plt, rng, ax=None):
12
+ """sns_histplot - DataFrame with hue.
13
+
14
+ Demonstrates: ax.sns_histplot(data=df, ...)
15
+ """
16
+ if ax is None:
17
+ fig, ax = plt.subplots()
18
+ else:
19
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
20
+
21
+ n = 100
22
+ groups = rng.choice(['A', 'B', 'C'], n)
23
+ df = pd.DataFrame({'group': groups, 'value': rng.normal(0, 1, n) + np.where(groups == 'A', 0, np.where(groups == 'B', 1, 2))})
24
+ ax.sns_histplot(data=df, x='value', hue='group', bins=20)
25
+ ax.set_xyt("X", "Y", "sns_histplot")
26
+ return fig, ax
27
+
28
+
29
+ # EOF
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_sns_kdeplot.py - sns_kdeplot demo
4
+
5
+ """sns_kdeplot: DataFrame KDE."""
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+
11
+ def plot_sns_kdeplot(plt, rng, ax=None):
12
+ """sns_kdeplot - DataFrame KDE.
13
+
14
+ Demonstrates: ax.sns_kdeplot(data=df, ...)
15
+ """
16
+ if ax is None:
17
+ fig, ax = plt.subplots()
18
+ else:
19
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
20
+
21
+ n = 100
22
+ groups = rng.choice(['A', 'B'], n)
23
+ df = pd.DataFrame({'group': groups, 'value': rng.normal(0, 1, n) + np.where(groups == 'A', 0, 2)})
24
+ ax.sns_kdeplot(data=df, x='value', hue='group')
25
+ ax.set_xyt("X", "Y", "sns_kdeplot")
26
+ return fig, ax
27
+
28
+
29
+ # EOF
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_sns_lineplot.py - sns_lineplot demo
4
+
5
+ """sns_lineplot: DataFrame time series."""
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+
11
+ def plot_sns_lineplot(plt, rng, ax=None):
12
+ """sns_lineplot - DataFrame time series.
13
+
14
+ Demonstrates: ax.sns_lineplot(data=df, ...)
15
+ """
16
+ if ax is None:
17
+ fig, ax = plt.subplots()
18
+ else:
19
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
20
+
21
+ n = 100
22
+ times = np.tile(np.arange(20), 30)
23
+ groups = np.repeat(['A', 'B'], 300)
24
+ values = np.where(groups == 'A', np.sin(times * 0.3), np.cos(times * 0.3)) + rng.normal(0, 0.3, 600)
25
+ df = pd.DataFrame({'time': times, 'value': values, 'group': groups})
26
+ ax.sns_lineplot(data=df, x='time', y='value', hue='group')
27
+ ax.set_xyt("X", "Y", "sns_lineplot")
28
+ return fig, ax
29
+
30
+
31
+ # EOF
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_sns_scatterplot.py - sns_scatterplot demo
4
+
5
+ """sns_scatterplot: DataFrame with hue."""
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+
11
+ def plot_sns_scatterplot(plt, rng, ax=None):
12
+ """sns_scatterplot - DataFrame with hue.
13
+
14
+ Demonstrates: ax.sns_scatterplot(data=df, ...)
15
+ """
16
+ if ax is None:
17
+ fig, ax = plt.subplots()
18
+ else:
19
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
20
+
21
+ n = 100
22
+ groups = rng.choice(['A', 'B', 'C'], n)
23
+ df = pd.DataFrame({'group': groups, 'x': rng.uniform(0, 10, n), 'y': rng.uniform(0, 10, n)})
24
+ ax.sns_scatterplot(data=df, x='x', y='y', hue='group')
25
+ ax.set_xyt("X", "Y", "sns_scatterplot")
26
+ return fig, ax
27
+
28
+
29
+ # EOF
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # File: plot_sns_stripplot.py - sns_stripplot demo
4
+
5
+ """sns_stripplot: DataFrame strip."""
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+
11
+ def plot_sns_stripplot(plt, rng, ax=None):
12
+ """sns_stripplot - DataFrame strip.
13
+
14
+ Demonstrates: ax.sns_stripplot(data=df, ...)
15
+ """
16
+ if ax is None:
17
+ fig, ax = plt.subplots()
18
+ else:
19
+ fig = ax.get_figure() if hasattr(ax, "get_figure") else ax._fig_scitex
20
+
21
+ n = 100
22
+ groups = rng.choice(['A', 'B', 'C'], n)
23
+ df = pd.DataFrame({'group': groups, 'value': rng.normal(0, 1, n) + np.where(groups == 'A', 0, np.where(groups == 'B', 1, 2))})
24
+ ax.sns_stripplot(data=df, x='group', y='value')
25
+ ax.set_xyt("X", "Y", "sns_stripplot")
26
+ return fig, ax
27
+
28
+
29
+ # EOF