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.
- {seraplot-2.3.75 → seraplot-2.3.77}/Cargo.lock +1 -1
- {seraplot-2.3.75 → seraplot-2.3.77}/Cargo.toml +1 -1
- {seraplot-2.3.75 → seraplot-2.3.77}/PKG-INFO +1 -1
- seraplot-2.3.77/publish_log.txt +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/pyproject.toml +1 -1
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/charts.rs +41 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/native.rs +37 -56
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/registry.rs +2 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/registry_macro.rs +1 -0
- seraplot-2.3.77/test_universal_ml.js +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/.gitignore +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/05--Diabetes_SeraPlot.ipynb +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/07--OpenFoodFacts_SeraPlot_Benchmark.ipynb +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/README.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/TEST_1M_Battle.ipynb +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_all.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_bigdata.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_full.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_issues.json +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_knn_sgd.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_perf.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_quick.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_quick2.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_scale.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_seraplot.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_sklearn.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_svc.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_svc2.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/bench_test.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_gridsearch.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_gridsearch2.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_kmeans_heavy.ipynb +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_kmeans_openfoodfacts.ipynb +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_ml.ipynb +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_ml_openfoodfacts.ipynb +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/benchmark_ml_out.ipynb +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/build.log +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/gen_bench_slides.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/1.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/2.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/3.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/4.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/5.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/6.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/7.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/2d/8.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/1.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/2.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/3.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/4.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/5.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/6.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/7.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/3d/8.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/README.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/benchmark/1.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/benchmark/2.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/benchmark/3.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/images/logo.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/kmeans_test.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/python/seraplot/__init__.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/python/seraplot/matplotlib.py +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/python/seraplot/seraplot.cp311-win_amd64.pyd.old +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/results_seraplot.json +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/results_sklearn.json +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/.github/workflows/mdbook.yml +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/README.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/asset/SVG World Map with labels.svg +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/asset/logo.png +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/asset/world.svg +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/builder_template.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/chart_types.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/docs.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/ml.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/commands/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/export_builder.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/fast_export_c.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/fast_render.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/memory_pool.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/unified_builder.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/unified_config.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/arena_alloc.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/bitset.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/compact_state.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/data_processor.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/image_processor.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/lazy_builders.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/memory_pool.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/simd_ops.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/bindings/utils/state_export.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/book.toml +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/core/builders.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/core/math.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/core/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/data/conversion.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/data/index.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/data/loader.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/data/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/data/processor.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/SUMMARY.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/api/index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/area.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/bar.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/boxplot.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/bubble.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/bullet.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/candlestick.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/donut.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/dumbbell.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/funnel.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/gauge.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/grid.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/grouped-bar.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/hbar.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/heatmap.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/histogram-overlay.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/histogram.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/kde.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/line.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/lollipop.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/multiline.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/parallel.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/pie.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/radar.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/ridgeline.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/scatter.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/slideshow.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/slope.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/stacked-bar.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/sunburst.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/treemap.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/violin.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/waterfall.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/2d/wordcloud.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/bar3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/bubble3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/candlestick3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/dumbbell3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/funnel3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/globe3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/heatmap3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/kde3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/line3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/lollipop3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/pie3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/radar3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/ridgeline3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/scatter3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/stacked-bar3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/sunburst3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/3d/violin3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/map/bubble-map.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/map/choropleth.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/charts/map/index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/config/auto-display.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/config/background.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/config/hover.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/config/palette.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/getting-started/chart-methods.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/getting-started/chart-object.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/getting-started/installation.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/getting-started/quickstart.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/introduction.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/adaboost.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/bayes-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/clustering-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/dbscan-class.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/dbscan.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/dbscan3d.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/decision-tree.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/decomposition-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/decomposition.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/elastic-net.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/evaluation-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/gradient-boosting.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/grid-search.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/kmeans-class.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/kmeans.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/knn.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/lasso.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/linear-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/linear-regression.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/logistic-regression.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/metrics.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/naive-bayes.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/neighbors-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/preprocessing-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/preprocessing.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/random-forest.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/ridge.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/selection-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/sgd.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/svm-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/svm.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/train-test-split.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/ml/tree-index.md +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/area.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bar.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bar3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bench-matplotlib.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bench-plotly.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bench-seraplot.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/boxplot.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bubble-map.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bubble.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bubble3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/bullet.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/candlestick.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/candlestick3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/choropleth.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dbscan-class.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dbscan.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dbscan3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/donut.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dumbbell.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/dumbbell3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/funnel.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/funnel3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/gauge.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/globe3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/grid.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/grouped-bar.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/hbar.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/heatmap.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/heatmap3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/histogram-overlay.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/histogram.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/kde.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/kde3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/line.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/line3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/lollipop.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/lollipop3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/multiline.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/parallel.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/pie.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/pie3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/radar.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/radar3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/ridgeline.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/ridgeline3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/scatter.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/scatter3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/slideshow.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/slope.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/stacked-bar.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/stacked-bar3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/sunburst.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/sunburst3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/treemap.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/violin.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/violin3d.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/waterfall.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/previews/wordcloud.html +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/theme/custom.css +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/docs/theme/lang-switcher.js +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/html/assets.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/html/fast_builders.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/html/fast_exporter.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/html/hover.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/html/html_export.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/html/html_template.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/html/js_3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/html/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/lib.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/cache.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/decomposition/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/decomposition/pca.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linalg.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/elastic_net.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/lasso.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/logistic.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/ols.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/ridge.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/linear/sgd.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/metrics/classification.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/metrics/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/metrics/regression.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/model_selection/cross_val.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/model_selection/grid_search.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/model_selection/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/model_selection/split.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/naive_bayes/bernoulli.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/naive_bayes/gaussian.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/naive_bayes/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/naive_bayes/multinomial.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/neighbors/knn.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/neighbors/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/preprocessing/encoders.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/preprocessing/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/preprocessing/scalers.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/svm/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/svm/svm.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/adaboost.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/decision_tree.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/decision_tree_backup.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/gradient_boosting.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/ml/tree/random_forest.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/camera.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/canvas.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/containers_3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/controller/chart_controller.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/controller/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/controller/plot_3d_controller.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/bar_3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/line_3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/plot_3d_types.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/_3d/scatter_3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/bar.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/chart.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/kmeans.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/line.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/scatter.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/default/svg.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/generic.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/_3d/globe.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/_3d/globe_html.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/_3d/globe_types.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/_3d/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/bubble_map.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/chart.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/choropleth.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/svg_parser.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/map/world_data.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/projection.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/renderers.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/scale_renderer.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/seaborn/_3d/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/seaborn/_3d/plot_3d_types.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/seaborn/chart.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/seaborn/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/candlestick3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/dumbbell3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/funnel3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/heatmap3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/kde3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/lollipop3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/pie3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/plot_3d_types.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/radar3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/ridgeline3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/stacked_bar3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/sunburst3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/_3d/violin3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/area.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/boxplot.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/bubble.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/bullet.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/candlestick.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/common.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/dumbbell.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/funnel.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/gauge.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/grouped_bar.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/heatmap.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/histogram.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/kde.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/lollipop.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/multiline.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/parallel.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/pie.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/radar.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/ridgeline.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/slope.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/sunburst.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/treemap.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/violin.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/waterfall.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/plot/statistical/wordcloud.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/cache.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/chart.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/gui.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/hybrid.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/manager/button_manager.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/manager/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/advanced_render.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/fast_render_gui.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/pipeline.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/viewer_3d.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/render/wiki_viewer.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/utils/image_loader.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/viewer/utils/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/api.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/extractor.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/language.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/macros.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/metadata.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/src/wiki/mod.rs +0 -0
- {seraplot-2.3.75 → seraplot-2.3.77}/test_accuracy.py +0 -0
|
Binary file
|
|
@@ -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
|
|
304
|
-
) ->
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
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
|
-
|
|
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 {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
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
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
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
|
|
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
|
|
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
|