seraplot 2.3.75__tar.gz → 2.3.77__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 (405) hide show
  1. {seraplot-2.3.75 → seraplot-2.3.77}/Cargo.lock +1 -1
  2. {seraplot-2.3.75 → seraplot-2.3.77}/Cargo.toml +1 -1
  3. {seraplot-2.3.75 → seraplot-2.3.77}/PKG-INFO +1 -1
  4. seraplot-2.3.77/publish_log.txt +0 -0
  5. {seraplot-2.3.75 → seraplot-2.3.77}/pyproject.toml +1 -1
  6. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/charts.rs +41 -0
  7. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/native.rs +37 -56
  8. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/registry.rs +2 -0
  9. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/registry_macro.rs +1 -0
  10. seraplot-2.3.77/test_universal_ml.js +0 -0
  11. {seraplot-2.3.75 → seraplot-2.3.77}/.gitignore +0 -0
  12. {seraplot-2.3.75 → seraplot-2.3.77}/05--Diabetes_SeraPlot.ipynb +0 -0
  13. {seraplot-2.3.75 → seraplot-2.3.77}/07--OpenFoodFacts_SeraPlot_Benchmark.ipynb +0 -0
  14. {seraplot-2.3.75 → seraplot-2.3.77}/README.md +0 -0
  15. {seraplot-2.3.75 → seraplot-2.3.77}/TEST_1M_Battle.ipynb +0 -0
  16. {seraplot-2.3.75 → seraplot-2.3.77}/bench_all.py +0 -0
  17. {seraplot-2.3.75 → seraplot-2.3.77}/bench_bigdata.py +0 -0
  18. {seraplot-2.3.75 → seraplot-2.3.77}/bench_full.py +0 -0
  19. {seraplot-2.3.75 → seraplot-2.3.77}/bench_issues.json +0 -0
  20. {seraplot-2.3.75 → seraplot-2.3.77}/bench_knn_sgd.py +0 -0
  21. {seraplot-2.3.75 → seraplot-2.3.77}/bench_perf.py +0 -0
  22. {seraplot-2.3.75 → seraplot-2.3.77}/bench_quick.py +0 -0
  23. {seraplot-2.3.75 → seraplot-2.3.77}/bench_quick2.py +0 -0
  24. {seraplot-2.3.75 → seraplot-2.3.77}/bench_scale.py +0 -0
  25. {seraplot-2.3.75 → seraplot-2.3.77}/bench_seraplot.py +0 -0
  26. {seraplot-2.3.75 → seraplot-2.3.77}/bench_sklearn.py +0 -0
  27. {seraplot-2.3.75 → seraplot-2.3.77}/bench_svc.py +0 -0
  28. {seraplot-2.3.75 → seraplot-2.3.77}/bench_svc2.py +0 -0
  29. {seraplot-2.3.75 → seraplot-2.3.77}/bench_test.py +0 -0
  30. {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_gridsearch.py +0 -0
  31. {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_gridsearch2.py +0 -0
  32. {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_kmeans_heavy.ipynb +0 -0
  33. {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_kmeans_openfoodfacts.ipynb +0 -0
  34. {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_ml.ipynb +0 -0
  35. {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_ml_openfoodfacts.ipynb +0 -0
  36. {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_ml_out.ipynb +0 -0
  37. {seraplot-2.3.75 → seraplot-2.3.77}/build.log +0 -0
  38. {seraplot-2.3.75 → seraplot-2.3.77}/gen_bench_slides.py +0 -0
  39. {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/1.png +0 -0
  40. {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/2.png +0 -0
  41. {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/3.png +0 -0
  42. {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/4.png +0 -0
  43. {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/5.png +0 -0
  44. {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/6.png +0 -0
  45. {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/7.png +0 -0
  46. {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/8.png +0 -0
  47. {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/1.png +0 -0
  48. {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/2.png +0 -0
  49. {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/3.png +0 -0
  50. {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/4.png +0 -0
  51. {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/5.png +0 -0
  52. {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/6.png +0 -0
  53. {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/7.png +0 -0
  54. {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/8.png +0 -0
  55. {seraplot-2.3.75 → seraplot-2.3.77}/images/README.md +0 -0
  56. {seraplot-2.3.75 → seraplot-2.3.77}/images/benchmark/1.png +0 -0
  57. {seraplot-2.3.75 → seraplot-2.3.77}/images/benchmark/2.png +0 -0
  58. {seraplot-2.3.75 → seraplot-2.3.77}/images/benchmark/3.png +0 -0
  59. {seraplot-2.3.75 → seraplot-2.3.77}/images/logo.png +0 -0
  60. {seraplot-2.3.75 → seraplot-2.3.77}/kmeans_test.html +0 -0
  61. {seraplot-2.3.75 → seraplot-2.3.77}/python/seraplot/__init__.py +0 -0
  62. {seraplot-2.3.75 → seraplot-2.3.77}/python/seraplot/matplotlib.py +0 -0
  63. {seraplot-2.3.75 → seraplot-2.3.77}/python/seraplot/seraplot.cp311-win_amd64.pyd.old +0 -0
  64. {seraplot-2.3.75 → seraplot-2.3.77}/results_seraplot.json +0 -0
  65. {seraplot-2.3.75 → seraplot-2.3.77}/results_sklearn.json +0 -0
  66. {seraplot-2.3.75 → seraplot-2.3.77}/src/.github/workflows/mdbook.yml +0 -0
  67. {seraplot-2.3.75 → seraplot-2.3.77}/src/README.md +0 -0
  68. {seraplot-2.3.75 → seraplot-2.3.77}/src/asset/SVG World Map with labels.svg +0 -0
  69. {seraplot-2.3.75 → seraplot-2.3.77}/src/asset/logo.png +0 -0
  70. {seraplot-2.3.75 → seraplot-2.3.77}/src/asset/world.svg +0 -0
  71. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/builder_template.rs +0 -0
  72. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/chart_types.rs +0 -0
  73. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/docs.rs +0 -0
  74. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/ml.rs +0 -0
  75. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/mod.rs +0 -0
  76. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/export_builder.rs +0 -0
  77. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/fast_export_c.rs +0 -0
  78. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/fast_render.rs +0 -0
  79. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/memory_pool.rs +0 -0
  80. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/mod.rs +0 -0
  81. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/unified_builder.rs +0 -0
  82. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/unified_config.rs +0 -0
  83. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/arena_alloc.rs +0 -0
  84. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/bitset.rs +0 -0
  85. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/compact_state.rs +0 -0
  86. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/data_processor.rs +0 -0
  87. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/image_processor.rs +0 -0
  88. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/lazy_builders.rs +0 -0
  89. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/memory_pool.rs +0 -0
  90. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/mod.rs +0 -0
  91. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/simd_ops.rs +0 -0
  92. {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/state_export.rs +0 -0
  93. {seraplot-2.3.75 → seraplot-2.3.77}/src/book.toml +0 -0
  94. {seraplot-2.3.75 → seraplot-2.3.77}/src/core/builders.rs +0 -0
  95. {seraplot-2.3.75 → seraplot-2.3.77}/src/core/math.rs +0 -0
  96. {seraplot-2.3.75 → seraplot-2.3.77}/src/core/mod.rs +0 -0
  97. {seraplot-2.3.75 → seraplot-2.3.77}/src/data/conversion.rs +0 -0
  98. {seraplot-2.3.75 → seraplot-2.3.77}/src/data/index.rs +0 -0
  99. {seraplot-2.3.75 → seraplot-2.3.77}/src/data/loader.rs +0 -0
  100. {seraplot-2.3.75 → seraplot-2.3.77}/src/data/mod.rs +0 -0
  101. {seraplot-2.3.75 → seraplot-2.3.77}/src/data/processor.rs +0 -0
  102. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/SUMMARY.md +0 -0
  103. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/api/index.md +0 -0
  104. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/area.md +0 -0
  105. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/bar.md +0 -0
  106. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/boxplot.md +0 -0
  107. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/bubble.md +0 -0
  108. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/bullet.md +0 -0
  109. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/candlestick.md +0 -0
  110. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/donut.md +0 -0
  111. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/dumbbell.md +0 -0
  112. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/funnel.md +0 -0
  113. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/gauge.md +0 -0
  114. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/grid.md +0 -0
  115. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/grouped-bar.md +0 -0
  116. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/hbar.md +0 -0
  117. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/heatmap.md +0 -0
  118. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/histogram-overlay.md +0 -0
  119. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/histogram.md +0 -0
  120. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/index.md +0 -0
  121. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/kde.md +0 -0
  122. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/line.md +0 -0
  123. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/lollipop.md +0 -0
  124. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/multiline.md +0 -0
  125. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/parallel.md +0 -0
  126. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/pie.md +0 -0
  127. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/radar.md +0 -0
  128. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/ridgeline.md +0 -0
  129. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/scatter.md +0 -0
  130. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/slideshow.md +0 -0
  131. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/slope.md +0 -0
  132. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/stacked-bar.md +0 -0
  133. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/sunburst.md +0 -0
  134. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/treemap.md +0 -0
  135. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/violin.md +0 -0
  136. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/waterfall.md +0 -0
  137. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/wordcloud.md +0 -0
  138. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/bar3d.md +0 -0
  139. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/bubble3d.md +0 -0
  140. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/candlestick3d.md +0 -0
  141. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/dumbbell3d.md +0 -0
  142. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/funnel3d.md +0 -0
  143. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/globe3d.md +0 -0
  144. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/heatmap3d.md +0 -0
  145. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/index.md +0 -0
  146. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/kde3d.md +0 -0
  147. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/line3d.md +0 -0
  148. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/lollipop3d.md +0 -0
  149. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/pie3d.md +0 -0
  150. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/radar3d.md +0 -0
  151. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/ridgeline3d.md +0 -0
  152. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/scatter3d.md +0 -0
  153. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/stacked-bar3d.md +0 -0
  154. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/sunburst3d.md +0 -0
  155. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/violin3d.md +0 -0
  156. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/map/bubble-map.md +0 -0
  157. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/map/choropleth.md +0 -0
  158. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/map/index.md +0 -0
  159. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/config/auto-display.md +0 -0
  160. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/config/background.md +0 -0
  161. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/config/hover.md +0 -0
  162. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/config/palette.md +0 -0
  163. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/getting-started/chart-methods.md +0 -0
  164. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/getting-started/chart-object.md +0 -0
  165. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/getting-started/installation.md +0 -0
  166. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/getting-started/quickstart.md +0 -0
  167. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/introduction.md +0 -0
  168. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/adaboost.md +0 -0
  169. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/bayes-index.md +0 -0
  170. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/clustering-index.md +0 -0
  171. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/dbscan-class.md +0 -0
  172. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/dbscan.md +0 -0
  173. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/dbscan3d.md +0 -0
  174. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/decision-tree.md +0 -0
  175. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/decomposition-index.md +0 -0
  176. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/decomposition.md +0 -0
  177. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/elastic-net.md +0 -0
  178. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/evaluation-index.md +0 -0
  179. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/gradient-boosting.md +0 -0
  180. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/grid-search.md +0 -0
  181. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/index.md +0 -0
  182. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/kmeans-class.md +0 -0
  183. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/kmeans.md +0 -0
  184. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/knn.md +0 -0
  185. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/lasso.md +0 -0
  186. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/linear-index.md +0 -0
  187. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/linear-regression.md +0 -0
  188. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/logistic-regression.md +0 -0
  189. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/metrics.md +0 -0
  190. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/naive-bayes.md +0 -0
  191. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/neighbors-index.md +0 -0
  192. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/preprocessing-index.md +0 -0
  193. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/preprocessing.md +0 -0
  194. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/random-forest.md +0 -0
  195. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/ridge.md +0 -0
  196. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/selection-index.md +0 -0
  197. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/sgd.md +0 -0
  198. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/svm-index.md +0 -0
  199. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/svm.md +0 -0
  200. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/train-test-split.md +0 -0
  201. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/tree-index.md +0 -0
  202. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/area.html +0 -0
  203. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bar.html +0 -0
  204. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bar3d.html +0 -0
  205. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bench-matplotlib.html +0 -0
  206. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bench-plotly.html +0 -0
  207. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bench-seraplot.html +0 -0
  208. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/boxplot.html +0 -0
  209. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bubble-map.html +0 -0
  210. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bubble.html +0 -0
  211. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bubble3d.html +0 -0
  212. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bullet.html +0 -0
  213. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/candlestick.html +0 -0
  214. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/candlestick3d.html +0 -0
  215. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/choropleth.html +0 -0
  216. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dbscan-class.html +0 -0
  217. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dbscan.html +0 -0
  218. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dbscan3d.html +0 -0
  219. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/donut.html +0 -0
  220. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dumbbell.html +0 -0
  221. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dumbbell3d.html +0 -0
  222. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/funnel.html +0 -0
  223. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/funnel3d.html +0 -0
  224. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/gauge.html +0 -0
  225. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/globe3d.html +0 -0
  226. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/grid.html +0 -0
  227. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/grouped-bar.html +0 -0
  228. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/hbar.html +0 -0
  229. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/heatmap.html +0 -0
  230. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/heatmap3d.html +0 -0
  231. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/histogram-overlay.html +0 -0
  232. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/histogram.html +0 -0
  233. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/kde.html +0 -0
  234. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/kde3d.html +0 -0
  235. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/line.html +0 -0
  236. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/line3d.html +0 -0
  237. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/lollipop.html +0 -0
  238. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/lollipop3d.html +0 -0
  239. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/multiline.html +0 -0
  240. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/parallel.html +0 -0
  241. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/pie.html +0 -0
  242. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/pie3d.html +0 -0
  243. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/radar.html +0 -0
  244. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/radar3d.html +0 -0
  245. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/ridgeline.html +0 -0
  246. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/ridgeline3d.html +0 -0
  247. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/scatter.html +0 -0
  248. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/scatter3d.html +0 -0
  249. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/slideshow.html +0 -0
  250. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/slope.html +0 -0
  251. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/stacked-bar.html +0 -0
  252. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/stacked-bar3d.html +0 -0
  253. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/sunburst.html +0 -0
  254. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/sunburst3d.html +0 -0
  255. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/treemap.html +0 -0
  256. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/violin.html +0 -0
  257. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/violin3d.html +0 -0
  258. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/waterfall.html +0 -0
  259. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/wordcloud.html +0 -0
  260. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/theme/custom.css +0 -0
  261. {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/theme/lang-switcher.js +0 -0
  262. {seraplot-2.3.75 → seraplot-2.3.77}/src/html/assets.rs +0 -0
  263. {seraplot-2.3.75 → seraplot-2.3.77}/src/html/fast_builders.rs +0 -0
  264. {seraplot-2.3.75 → seraplot-2.3.77}/src/html/fast_exporter.rs +0 -0
  265. {seraplot-2.3.75 → seraplot-2.3.77}/src/html/hover.rs +0 -0
  266. {seraplot-2.3.75 → seraplot-2.3.77}/src/html/html_export.rs +0 -0
  267. {seraplot-2.3.75 → seraplot-2.3.77}/src/html/html_template.rs +0 -0
  268. {seraplot-2.3.75 → seraplot-2.3.77}/src/html/js_3d.rs +0 -0
  269. {seraplot-2.3.75 → seraplot-2.3.77}/src/html/mod.rs +0 -0
  270. {seraplot-2.3.75 → seraplot-2.3.77}/src/lib.rs +0 -0
  271. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/cache.rs +0 -0
  272. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/decomposition/mod.rs +0 -0
  273. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/decomposition/pca.rs +0 -0
  274. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linalg.rs +0 -0
  275. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/elastic_net.rs +0 -0
  276. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/lasso.rs +0 -0
  277. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/logistic.rs +0 -0
  278. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/mod.rs +0 -0
  279. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/ols.rs +0 -0
  280. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/ridge.rs +0 -0
  281. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/sgd.rs +0 -0
  282. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/metrics/classification.rs +0 -0
  283. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/metrics/mod.rs +0 -0
  284. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/metrics/regression.rs +0 -0
  285. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/mod.rs +0 -0
  286. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/model_selection/cross_val.rs +0 -0
  287. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/model_selection/grid_search.rs +0 -0
  288. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/model_selection/mod.rs +0 -0
  289. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/model_selection/split.rs +0 -0
  290. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/naive_bayes/bernoulli.rs +0 -0
  291. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/naive_bayes/gaussian.rs +0 -0
  292. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/naive_bayes/mod.rs +0 -0
  293. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/naive_bayes/multinomial.rs +0 -0
  294. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/neighbors/knn.rs +0 -0
  295. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/neighbors/mod.rs +0 -0
  296. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/preprocessing/encoders.rs +0 -0
  297. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/preprocessing/mod.rs +0 -0
  298. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/preprocessing/scalers.rs +0 -0
  299. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/svm/mod.rs +0 -0
  300. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/svm/svm.rs +0 -0
  301. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/adaboost.rs +0 -0
  302. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/decision_tree.rs +0 -0
  303. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/decision_tree_backup.rs +0 -0
  304. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/gradient_boosting.rs +0 -0
  305. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/mod.rs +0 -0
  306. {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/random_forest.rs +0 -0
  307. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/camera.rs +0 -0
  308. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/canvas.rs +0 -0
  309. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/containers_3d.rs +0 -0
  310. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/controller/chart_controller.rs +0 -0
  311. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/controller/mod.rs +0 -0
  312. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/controller/plot_3d_controller.rs +0 -0
  313. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/bar_3d.rs +0 -0
  314. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/line_3d.rs +0 -0
  315. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/mod.rs +0 -0
  316. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/plot_3d_types.rs +0 -0
  317. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/scatter_3d.rs +0 -0
  318. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/bar.rs +0 -0
  319. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/chart.rs +0 -0
  320. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/kmeans.rs +0 -0
  321. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/line.rs +0 -0
  322. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/mod.rs +0 -0
  323. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/scatter.rs +0 -0
  324. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/svg.rs +0 -0
  325. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/generic.rs +0 -0
  326. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/_3d/globe.rs +0 -0
  327. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/_3d/globe_html.rs +0 -0
  328. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/_3d/globe_types.rs +0 -0
  329. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/_3d/mod.rs +0 -0
  330. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/bubble_map.rs +0 -0
  331. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/chart.rs +0 -0
  332. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/choropleth.rs +0 -0
  333. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/mod.rs +0 -0
  334. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/svg_parser.rs +0 -0
  335. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/world_data.rs +0 -0
  336. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/mod.rs +0 -0
  337. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/projection.rs +0 -0
  338. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/renderers.rs +0 -0
  339. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/scale_renderer.rs +0 -0
  340. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/seaborn/_3d/mod.rs +0 -0
  341. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/seaborn/_3d/plot_3d_types.rs +0 -0
  342. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/seaborn/chart.rs +0 -0
  343. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/seaborn/mod.rs +0 -0
  344. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/candlestick3d.rs +0 -0
  345. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/dumbbell3d.rs +0 -0
  346. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/funnel3d.rs +0 -0
  347. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/heatmap3d.rs +0 -0
  348. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/kde3d.rs +0 -0
  349. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/lollipop3d.rs +0 -0
  350. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/mod.rs +0 -0
  351. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/pie3d.rs +0 -0
  352. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/plot_3d_types.rs +0 -0
  353. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/radar3d.rs +0 -0
  354. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/ridgeline3d.rs +0 -0
  355. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/stacked_bar3d.rs +0 -0
  356. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/sunburst3d.rs +0 -0
  357. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/violin3d.rs +0 -0
  358. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/area.rs +0 -0
  359. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/boxplot.rs +0 -0
  360. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/bubble.rs +0 -0
  361. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/bullet.rs +0 -0
  362. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/candlestick.rs +0 -0
  363. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/common.rs +0 -0
  364. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/dumbbell.rs +0 -0
  365. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/funnel.rs +0 -0
  366. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/gauge.rs +0 -0
  367. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/grouped_bar.rs +0 -0
  368. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/heatmap.rs +0 -0
  369. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/histogram.rs +0 -0
  370. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/kde.rs +0 -0
  371. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/lollipop.rs +0 -0
  372. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/mod.rs +0 -0
  373. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/multiline.rs +0 -0
  374. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/parallel.rs +0 -0
  375. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/pie.rs +0 -0
  376. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/radar.rs +0 -0
  377. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/ridgeline.rs +0 -0
  378. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/slope.rs +0 -0
  379. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/sunburst.rs +0 -0
  380. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/treemap.rs +0 -0
  381. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/violin.rs +0 -0
  382. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/waterfall.rs +0 -0
  383. {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/wordcloud.rs +0 -0
  384. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/cache.rs +0 -0
  385. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/chart.rs +0 -0
  386. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/gui.rs +0 -0
  387. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/hybrid.rs +0 -0
  388. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/manager/button_manager.rs +0 -0
  389. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/manager/mod.rs +0 -0
  390. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/mod.rs +0 -0
  391. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/advanced_render.rs +0 -0
  392. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/fast_render_gui.rs +0 -0
  393. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/mod.rs +0 -0
  394. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/pipeline.rs +0 -0
  395. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/viewer_3d.rs +0 -0
  396. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/wiki_viewer.rs +0 -0
  397. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/utils/image_loader.rs +0 -0
  398. {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/utils/mod.rs +0 -0
  399. {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/api.rs +0 -0
  400. {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/extractor.rs +0 -0
  401. {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/language.rs +0 -0
  402. {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/macros.rs +0 -0
  403. {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/metadata.rs +0 -0
  404. {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/mod.rs +0 -0
  405. {seraplot-2.3.75 → seraplot-2.3.77}/test_accuracy.py +0 -0
@@ -3471,7 +3471,7 @@ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
3471
3471
 
3472
3472
  [[package]]
3473
3473
  name = "seraplot"
3474
- version = "2.3.75"
3474
+ version = "2.3.77"
3475
3475
  dependencies = [
3476
3476
  "base64 0.22.1",
3477
3477
  "criterion",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "seraplot"
3
- version = "2.3.75"
3
+ version = "2.3.77"
4
4
  edition = "2021"
5
5
  authors = ["feur25"]
6
6
  description = "Rust data visualization framework - The modern Plotly alternative"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seraplot
3
- Version: 2.3.75
3
+ Version: 2.3.77
4
4
  Classifier: Development Status :: 5 - Production/Stable
5
5
  Classifier: Environment :: Win32 (MS Windows)
6
6
  Classifier: Intended Audience :: Developers
Binary file
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "seraplot"
7
- version = "2.3.75"
7
+ version = "2.3.77"
8
8
  description = "Rust data visualization framework - The modern Plotly alternative"
9
9
  readme = "README.md"
10
10
  readme-content-type = "text/markdown"
@@ -1258,6 +1258,47 @@ pub fn build_parallel(input: &str) -> String {
1258
1258
  apply(html, &o)
1259
1259
  }
1260
1260
 
1261
+ pub fn plot_chart(input: &str) -> String {
1262
+ #[derive(Deserialize, Default)]
1263
+ struct I {
1264
+ x: Option<Vec<f64>>,
1265
+ y: Option<Vec<f64>>,
1266
+ kind: Option<String>,
1267
+ title: Option<String>,
1268
+ color_hex: Option<u32>,
1269
+ width: Option<i32>,
1270
+ height: Option<i32>,
1271
+ x_label: Option<String>,
1272
+ y_label: Option<String>,
1273
+ gridlines: Option<bool>,
1274
+ palette: Option<Vec<u32>>,
1275
+ background: Option<String>,
1276
+ show_points: Option<bool>,
1277
+ }
1278
+ let p: I = serde_json::from_str(input).unwrap_or_default();
1279
+ let xv = p.x.unwrap_or_default();
1280
+ let title = p.title.unwrap_or_default();
1281
+ let color_hex = p.color_hex.unwrap_or(0x6366F1);
1282
+ let width = p.width.unwrap_or(900);
1283
+ let height = p.height.unwrap_or(480);
1284
+ let x_label = p.x_label.unwrap_or_default();
1285
+ let y_label = p.y_label.unwrap_or_default();
1286
+ let gridlines = p.gridlines.unwrap_or(false);
1287
+ let show_points = p.show_points.unwrap_or(true);
1288
+ let kind = p.kind.as_deref().unwrap_or("line");
1289
+ if let Some(yv) = p.y {
1290
+ if kind == "scatter" {
1291
+ build_scatter_chart(&serde_json::json!({"title":title,"x":xv,"y":yv,"color_hex":color_hex,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":gridlines,"palette":p.palette,"background":p.background}).to_string())
1292
+ } else {
1293
+ let labels: Vec<String> = xv.iter().map(|v| v.to_string()).collect();
1294
+ build_line_chart(&serde_json::json!({"title":title,"labels":labels,"values":yv,"color_hex":color_hex,"show_points":show_points,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":gridlines,"palette":p.palette,"background":p.background}).to_string())
1295
+ }
1296
+ } else {
1297
+ let labels: Vec<String> = (0..xv.len()).map(|idx| idx.to_string()).collect();
1298
+ build_line_chart(&serde_json::json!({"title":title,"labels":labels,"values":xv,"color_hex":color_hex,"show_points":show_points,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":gridlines,"palette":p.palette,"background":p.background}).to_string())
1299
+ }
1300
+ }
1301
+
1261
1302
  pub fn build_grid(input: &str) -> String {
1262
1303
  let (title_s, a, o) = parse_all(input);
1263
1304
  let title = title_s.as_str();
@@ -119,6 +119,18 @@ macro_rules! impl_python {
119
119
  #[cfg(feature = "python")]
120
120
  crate::for_each_json_chart_fn!(impl_python);
121
121
 
122
+ #[cfg(feature = "python")]
123
+ macro_rules! impl_python_json {
124
+ ($fn:ident, $_js:literal) => {
125
+ #[pyfunction]
126
+ pub fn $fn(input: &str) -> String {
127
+ crate::bindings::commands::charts::$fn(input)
128
+ }
129
+ };
130
+ }
131
+ #[cfg(feature = "python")]
132
+ crate::for_each_ml_oneshot_fn!(impl_python_json);
133
+
122
134
  #[cfg(feature = "python")]
123
135
  #[pyfunction]
124
136
  #[pyo3(name = "set_bg", signature = (html, color=None))]
@@ -297,35 +309,18 @@ pub fn build_slideshow(
297
309
 
298
310
  #[cfg(feature = "python")]
299
311
  #[pyfunction]
312
+ #[pyo3(signature = (labels, images=None, descriptions=None))]
300
313
  pub fn build_hover_json(
301
314
  labels: Vec<String>,
302
315
  images: Option<Vec<Option<String>>>,
303
- descriptions: Option<&PyAny>,
304
- ) -> PyResult<String> {
305
- use crate::html::hover::{HoverSlot, slots_to_json};
306
- let mut slots = Vec::new();
307
- let n = labels.len();
308
- for i in 0..n {
309
- let mut slot = HoverSlot::new(&labels.get(i).cloned().unwrap_or_default());
310
- if let Some(ref imgs) = images {
311
- if i < imgs.len() {
312
- if let Some(ref img_url) = imgs[i] {
313
- slot = slot.image(img_url.clone());
314
- }
315
- }
316
- }
317
- if let Some(descs_py) = descriptions {
318
- if let Ok(descs_list) = descs_py.extract::<Vec<Vec<(String, String)>>>() {
319
- if i < descs_list.len() {
320
- for (k, v) in &descs_list[i] {
321
- slot = slot.kv(k.clone(), v.clone());
322
- }
323
- }
324
- }
325
- }
326
- slots.push(slot);
327
- }
328
- Ok(slots_to_json(&slots))
316
+ descriptions: Option<Vec<Vec<(String, String)>>>,
317
+ ) -> String {
318
+ let desc_json: Option<Vec<Vec<Vec<String>>>> = descriptions.map(|outer|
319
+ outer.into_iter().map(|row| row.into_iter().map(|(k, v)| vec![k, v]).collect()).collect()
320
+ );
321
+ crate::bindings::commands::charts::build_hover_json(
322
+ &serde_json::json!({"labels": labels, "images": images, "descriptions": desc_json}).to_string()
323
+ )
329
324
  }
330
325
 
331
326
  #[cfg(feature = "python")]
@@ -349,42 +344,28 @@ pub fn plot_chart(
349
344
  ) -> PyResult<Chart> {
350
345
  let (bg, pal, grid) = crate::merge_global_opts(background, palette, gridlines);
351
346
  let pal_opt: Option<Vec<u32>> = if pal.is_empty() { None } else { Some(pal) };
352
-
353
- if let Ok(df) = x.getattr("columns") {
354
- let cols: Vec<String> = df.extract()?;
347
+ if let Ok(cols_obj) = x.getattr("columns") {
348
+ let cols: Vec<String> = cols_obj.extract()?;
355
349
  if cols.len() >= 2 {
356
350
  let xv = crate::py_to_f64_vec(py, x.get_item(&cols[0])?)?;
357
351
  let yv = crate::py_to_f64_vec(py, x.get_item(&cols[1])?)?;
358
- let auto_title = if title.is_empty() { format!("{} vs {}", cols[0], cols[1]) } else { String::new() };
359
- let t = if title.is_empty() { auto_title.as_str() } else { title };
360
- let html = crate::bindings::commands::charts::build_scatter_chart(
361
- &serde_json::json!({"title":t,"x":xv,"y":yv,"color_hex":color_hex,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":grid,"palette":pal_opt,"background":bg}).to_string()
362
- );
363
- return Ok(Chart::new_doc(html, ""));
352
+ let auto_title = if title.is_empty() { format!("{} vs {}", cols[0], cols[1]) } else { title.to_string() };
353
+ return Ok(Chart::new_doc(
354
+ crate::bindings::commands::charts::plot_chart(
355
+ &serde_json::json!({"x":xv,"y":yv,"kind":"scatter","title":auto_title,"color_hex":color_hex,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":grid,"palette":pal_opt,"background":bg}).to_string()
356
+ ),
357
+ "",
358
+ ));
364
359
  }
365
360
  }
366
-
367
361
  let xv = crate::py_to_f64_vec(py, x)?;
368
- if let Some(yobj) = y {
369
- let yv = crate::py_to_f64_vec(py, yobj)?;
370
- let html = if kind == "scatter" {
371
- crate::bindings::commands::charts::build_scatter_chart(
372
- &serde_json::json!({"title":title,"x":xv,"y":yv,"color_hex":color_hex,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":grid,"palette":pal_opt,"background":bg}).to_string()
373
- )
374
- } else {
375
- let labels: Vec<String> = xv.iter().map(|v| v.to_string()).collect();
376
- crate::bindings::commands::charts::build_line_chart(
377
- &serde_json::json!({"title":title,"labels":labels,"values":yv,"color_hex":color_hex,"show_points":show_points,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":grid,"palette":pal_opt,"background":bg}).to_string()
378
- )
379
- };
380
- Ok(Chart::new_doc(html, ""))
381
- } else {
382
- let labels: Vec<String> = (0..xv.len()).map(|i| i.to_string()).collect();
383
- let html = crate::bindings::commands::charts::build_line_chart(
384
- &serde_json::json!({"title":title,"labels":labels,"values":xv,"color_hex":color_hex,"show_points":show_points,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":grid,"palette":pal_opt,"background":bg}).to_string()
385
- );
386
- Ok(Chart::new_doc(html, ""))
387
- }
362
+ let yv: Option<Vec<f64>> = if let Some(yobj) = y { Some(crate::py_to_f64_vec(py, yobj)?) } else { None };
363
+ Ok(Chart::new_doc(
364
+ crate::bindings::commands::charts::plot_chart(
365
+ &serde_json::json!({"x":xv,"y":yv,"kind":kind,"title":title,"color_hex":color_hex,"show_points":show_points,"width":width,"height":height,"x_label":x_label,"y_label":y_label,"gridlines":grid,"palette":pal_opt,"background":bg}).to_string()
366
+ ),
367
+ "",
368
+ ))
388
369
  }
389
370
 
390
371
  #[cfg(feature = "python")]
@@ -9,6 +9,7 @@ use super::native::*;
9
9
 
10
10
  use crate::for_each_chart_fn;
11
11
  use crate::for_each_chart_class;
12
+ use crate::for_each_ml_oneshot_fn;
12
13
 
13
14
  #[cfg(feature = "python")]
14
15
  pub fn register_submodules(py: Python<'_>, m: &PyModule) -> PyResult<()> {
@@ -23,6 +24,7 @@ pub fn register_submodules(py: Python<'_>, m: &PyModule) -> PyResult<()> {
23
24
  ($fn:ident, $_js:literal) => { m.add_function(wrap_pyfunction!($fn, m)?)?; }
24
25
  }
25
26
  for_each_chart_fn!(add_fn);
27
+ for_each_ml_oneshot_fn!(add_fn);
26
28
 
27
29
  macro_rules! add_class {
28
30
  ($cls:ident) => { m.add_class::<$cls>()?; }
@@ -172,6 +172,7 @@ macro_rules! for_each_ml_oneshot_fn {
172
172
  macro_rules! for_each_fn {
173
173
  ($mac:ident) => {
174
174
  $crate::for_each_chart_fn!($mac);
175
+ $mac!(plot_chart, "plotChart");
175
176
  $mac!(build_hover_json, "buildHoverJson");
176
177
  $crate::for_each_ml_oneshot_fn!($mac);
177
178
  $mac!(set_theme, "setTheme");
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes