jarvisplot 2.1.11__tar.gz → 2.1.12__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.
- jarvisplot-2.1.12/CHANGELOG.md +120 -0
- jarvisplot-2.1.12/Example/README.md +102 -0
- jarvisplot-2.1.12/Example/a4paper_2x1.yaml +73 -0
- jarvisplot-2.1.12/Example/a4paper_4x1_rectcmap.yaml +30 -0
- jarvisplot-2.1.12/Example/compact_legend.yaml +237 -0
- jarvisplot-2.1.12/Example/correlation_demo.csv +401 -0
- jarvisplot-2.1.12/Example/correlation_demo_wide.csv +201 -0
- jarvisplot-2.1.12/Example/corrplot_diamond.yaml +211 -0
- jarvisplot-2.1.12/Example/corrplot_matrix.yaml +85 -0
- jarvisplot-2.1.12/Example/corrplot_scales.yaml +210 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/README.md +5 -7
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/intervals-only.yaml +0 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/multi-interval.yaml +0 -1
- jarvisplot-2.1.12/Example/gambit_2x1.yaml +41 -0
- jarvisplot-2.1.12/Example/generated_data.yaml +57 -0
- jarvisplot-2.1.12/Example/legend_cards.yaml +150 -0
- jarvisplot-2.1.12/Example/pdf_cdf_1d.yaml +74 -0
- jarvisplot-2.1.12/Example/ternary_1x1.yaml +39 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/JarvisPLOT.egg-info/PKG-INFO +40 -26
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/JarvisPLOT.egg-info/SOURCES.txt +19 -5
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/MANIFEST.in +2 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/PKG-INFO +40 -26
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/README.md +39 -25
- jarvisplot-2.1.12/VERSION +1 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/adapters_rect.py +13 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/adapters_ternary.py +7 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/colorbar_runtime.py +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/density_cell_runtime.py +41 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/figure.py +17 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/forest_runtime.py +2 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/posterior_density_runtime.py +2 -12
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cache_registry.py +192 -12
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cache_store.py +159 -86
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/capabilities.py +5 -0
- jarvisplot-2.1.12/jarvisplot/cards/a4paper/1x1/ternary.json +467 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/2x1/dynesty_runplot.json +10 -10
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/args.json +3 -11
- jarvisplot-2.1.12/jarvisplot/cards/gambit/1x1/ternary.json +481 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/gambit/2x1/rect_cmap.json +4 -4
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cli.py +1 -1
- jarvisplot-2.1.12/jarvisplot/client.py +53 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/column_demand.py +14 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/column_probe.py +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/core.py +5 -3
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/data_access.py +3 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/diagnostic_guidance.py +18 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/diagnostics.py +4 -4
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/dryrun_runtime.py +27 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/expr_names.py +36 -4
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/inner_func.py +93 -41
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/man_methods.py +0 -10
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/agent-readme.yaml +3 -5
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/cache.yaml +17 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/cli-map.yaml +3 -3
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/data-columns.yaml +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/diagnostics.yaml +2 -4
- jarvisplot-2.1.12/jarvisplot/manual_cards/doctor.yaml +41 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/dryrun-viz.yaml +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/generated-data.yaml +0 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/layer-method.yaml +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/legend.yaml +1 -3
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/manifest.yaml +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/method_notes.yaml +4 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/type-correlation-matrix.yaml +1 -9
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/type-forest.yaml +4 -10
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/workflow.yaml +3 -5
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/yaml-root.yaml +0 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/method_contracts.py +4 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/render_health.py +0 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/figure.json +52 -5
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/voronoif.json +6 -5
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/types/forest.json +28 -36
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema_diagnostics.py +2 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/validation.py +59 -3
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/__init__.py +2 -3
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/cache.py +4 -2
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/config_cmd.py +7 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/pyproject.toml +1 -1
- jarvisplot-2.1.12/tests/conftest.py +35 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_cache_cleanup.py +2 -1
- jarvisplot-2.1.12/tests/test_cache_policy.py +362 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_cache_registry.py +8 -8
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_capabilities.py +6 -12
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_cli_help.py +4 -4
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_cli_verbs.py +58 -83
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_column_existence.py +153 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_config_edit.py +39 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_config_expand.py +1 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_data_head_eval.py +7 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_density_cell_transform.py +48 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_examples_validate.py +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_expression_semantics.py +121 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_figure_type_expander.py +47 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_font_runtime.py +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_forest.py +4 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_forest_examples.py +3 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_imshow_adapter.py +1 -1
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_man_cli.py +7 -7
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_method_contracts.py +71 -1
- jarvisplot-2.1.12/tests/test_render_defects.py +303 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_schema_catalog.py +7 -2
- jarvisplot-2.1.11/tests/test_validate_no_matplotlib.py → jarvisplot-2.1.12/tests/test_validation_imports.py +8 -11
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_version.py +21 -0
- jarvisplot-2.1.11/CHANGELOG.md +0 -61
- jarvisplot-2.1.11/VERSION +0 -1
- jarvisplot-2.1.11/jarvisplot/cards/a4paper/1x1/ternary.json +0 -298
- jarvisplot-2.1.11/jarvisplot/cards/gambit/1x1/ternary.json +0 -298
- jarvisplot-2.1.11/jarvisplot/client.py +0 -29
- jarvisplot-2.1.11/jarvisplot/fix_apply.py +0 -172
- jarvisplot-2.1.11/jarvisplot/manual_cards/validate.yaml +0 -50
- jarvisplot-2.1.11/jarvisplot/verbs/validate.py +0 -212
- jarvisplot-2.1.11/tests/test_fix_application.py +0 -111
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/box.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/box.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/forest-points.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/forest-rows.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/interval.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/points.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/summary-intervals.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/summary-labels.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/summary-points.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/data/summary-rows.csv +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/interval.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/real-demo-debug.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/Example/forest/real-demo.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/JarvisPLOT.egg-info/dependency_links.txt +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/JarvisPLOT.egg-info/entry_points.txt +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/JarvisPLOT.egg-info/requires.txt +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/JarvisPLOT.egg-info/top_level.txt +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/__init__.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/adaptive_cdf_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/bin_stat_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/cards/std_axes_adapter_config.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/config_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/corr_layout.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/corr_layout_diamond.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/corr_order.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/correlation_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/corrplot_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/data_pipelines.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/debug_config.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/design_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/distribution_1d_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/dynesty_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/figure_types.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/forest_debug.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/forest_legend.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/helper.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/interp_2d_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/interp_natural_neighbor.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/interp_natural_neighbor_exact.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/layer_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/layout_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/legend_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/method_registry.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/posterior_hpd.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/posterior_mesh.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/preprocessor.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/preprocessor_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/profile_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/significance_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/Figure/style_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/__init__.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/agent_digest.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/agent_io.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/2x1/rect.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/2x1/rect5x1.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/2x1/rect_cmap.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/2x1/rect_marginal.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/2x1/rectratio.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/2x1/ternary.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/2x1/ternary_cmap.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/4x1/rect.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/4x1/rect_cmap.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/4x1/ternary.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/a4paper/4x1/ternary_cmap.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/colors/colormaps.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/corrplot/diamond.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/corrplot/matrix.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/default/output.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/flowchart/default.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/fonts/default.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/forest/swiss_column.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/gambit/2x1/ternary.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/gambit/2x1/ternary_cmap.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/JarvisHEP.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/flowchart/JarvisHEP.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/flowchart/calculator.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/flowchart/inputfile.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/flowchart/opera.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/flowchart/outputfile.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/flowchart/sampler.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/gambit.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/icons/gambit_small.png +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/legends/compact/legend-card.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/legends/default/legend-card.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/legends/paper/legend-card.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/legends/presentation/legend-card.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cards/style_preference.json +3 -3
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/cli_help.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/config.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/config_address.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/core_assets.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/core_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/data_generation_contracts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/data_loader.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/data_loader_hdf5.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/data_loader_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/data_loader_summary.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/dataset_types.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/distribution_1d_config.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/flowchart.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/font_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/fonts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/forest_contract.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/forest_text.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/generated_data.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/legend_cards.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/man_catalog.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/man_render_agent.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/man_render_human.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/man_transforms.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/agent-output.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/debug-overlay.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/field-interp.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/fonts.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/style-axes.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/type-posterior-2d.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/manual_cards/type-profile-2d.yaml +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/memtrace.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/common.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/dataset.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/distribution-1d.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/generated-data.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/layer.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/legend-card.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/legend.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/core/transform.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/manifest.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/bar.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/barh.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/contour.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/contourf.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/corrplot.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/dynesty_runplot.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/errorbar.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/fill.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/fill_between.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/fill_betweenx.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/hist.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/hist2d.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/imshow.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/jpcontour.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/jpcontourf.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/jpfield.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/pcolor.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/pcolormesh.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/plot.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/quiver.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/scatter.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/stairs.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/step.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/tricontour.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/tricontourf.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/tripcolor.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/tripcolor_axes.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/triplot.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/methods/voronoi.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema/plot-config.json +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/schema_catalog.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/templates_catalog.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/transform_contracts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/utils/__init__.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/utils/cmaps.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/utils/dataframes.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/utils/expression.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/utils/interpolator.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/utils/pathing.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/cap.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/data.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/doctor.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/dryrun.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/explain.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/fonts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/man.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/suggest.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/verbs/template.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/version.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/jarvisplot/yaml_io.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/setup.cfg +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_adaptive_cdf.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_add_column.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_agent_digest.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_agent_envelope.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_axis_title.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_card_debug_shape.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_cmaps.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_column_pruning.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_config_addressing.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_correlation_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_corrplot.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_data_access.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_data_describe.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_data_loader_contracts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_data_pipelines.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_debug_config.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_debug_switches.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_debug_yaml_override.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_design_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_diagnostic_guidance.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_distribution_1d_transform.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_doctor_partial.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_explain.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_figure_contracts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_flowchart_renderer.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_fonts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_fonts_cli.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_forest_text.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_generated_data.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_interp_2d_transform.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_interp_natural_neighbor.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_interpolator_contracts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_jpcontour_methods.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_layer_legend.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_legend_cards.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_legend_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_parse_data_metadata.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_pathing_contracts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_posterior_hpd.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_profile_runtime.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_release_contract.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_render_health.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_render_lifecycle.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_row_ledger.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_savefig_provenance.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_suggest.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_suggest_axes.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_template_catalog.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_ternary_debug.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tests/test_transform_contracts.py +0 -0
- {jarvisplot-2.1.11 → jarvisplot-2.1.12}/tools/check_release.py +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release history of the `JarvisPLOT` distribution (import package `jarvisplot`,
|
|
4
|
+
CLI `jplot`). User guides and reference documentation are available in
|
|
5
|
+
[Jarvis-Books `Docs/Jarvis-PLOT/`](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/README.md).
|
|
6
|
+
|
|
7
|
+
## 2.1.12 — 2026-10-19
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Automatically manage registered plot caches with a default 5 GiB total budget
|
|
12
|
+
and a 30-day idle limit. Configure `~/.jarvis/plot-cache.json` (under
|
|
13
|
+
`JARVIS_HOME` when set), `JP_CACHE_MAX_GIB` or `JP_CACHE_MAX_AGE_DAYS`.
|
|
14
|
+
`jplot cache list` reports the effective policy. Idle caches are reclaimed
|
|
15
|
+
toward 80% of the budget; active caches remain protected.
|
|
16
|
+
- Show `-v` / `--version` without loading the plotting runtime. Structured
|
|
17
|
+
`--json` version output is also available through `Jarvis plot`.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- Draw `voronoif` and `triplot` layers. `voronoif` takes `x`, `y` and an
|
|
22
|
+
optional `where` mask for the selected region's hatched boundary; it has no
|
|
23
|
+
`z` or colorbar. `triplot` works on rectangular and ternary axes.
|
|
24
|
+
- Evaluate built-in mathematical functions, including hyperbolic and inverse
|
|
25
|
+
trigonometric functions, `Gauss`, `Normal` and `Heaviside`, on whole columns.
|
|
26
|
+
Preserve the `Heaviside(x, H0=...)` keyword. Define `Pi`, `pi`, `E` and `Inf`,
|
|
27
|
+
and publish them through `jplot cap funcs`.
|
|
28
|
+
- Avoid false missing-column errors for built-in functions, keyword argument
|
|
29
|
+
labels, YAML `Functions`, Operas namespaces and columns produced by
|
|
30
|
+
`significance` transforms.
|
|
31
|
+
- Accept `voronoi` and `adaptive` in `make_density_core`, and recognize the
|
|
32
|
+
existing `profile_2d` reduction and grid options during YAML checks.
|
|
33
|
+
- Restore usable full-width `[a4paper_1x1, Ternary]` and
|
|
34
|
+
`[gambit_1x1, Ternary]` cards. See the
|
|
35
|
+
[runnable example](https://github.com/Pengxuan-Zhu-Phys/Jarvis-PLOT/blob/main/Example/ternary_1x1.yaml).
|
|
36
|
+
- Print mappings containing quoted YAML strings with `jplot config get`.
|
|
37
|
+
- Keep `dynesty_runplot` y labels inside the page and the GAMBIT `rectcmap`
|
|
38
|
+
colorbar label clear of its tick numbers.
|
|
39
|
+
- Protect caches used by concurrent plotting sessions. `--print` defers
|
|
40
|
+
cleanup until readers finish, and rebuilding a busy cache reports an error
|
|
41
|
+
without deleting it. Atomic writes prevent incomplete payloads and lost
|
|
42
|
+
registry updates; interrupted temporary files are reclaimed when idle.
|
|
43
|
+
Cache use reports an error if reliable locking is unavailable.
|
|
44
|
+
- Report missing layer axes or data before rendering. A layer without a method
|
|
45
|
+
reports a warning and continues to use `scatter`.
|
|
46
|
+
|
|
47
|
+
### Compatibility and upgrade notes
|
|
48
|
+
|
|
49
|
+
- Use `jplot doctor <file>` in place of the removed `jplot validate <file>`
|
|
50
|
+
command. Automatic `--fix` / `--fix-unsafe` YAML rewriting has been removed.
|
|
51
|
+
`doctor` performs internal YAML checks and a light dryrun; configuration
|
|
52
|
+
editing and suggestions also retain their internal checks.
|
|
53
|
+
- Remove boolean `frame.axlogo` entries from YAML. The field accepts a settings
|
|
54
|
+
mapping only, including for forest figures. Use `jplot <file> --print` for
|
|
55
|
+
final output without the badge.
|
|
56
|
+
- Lists in `frame` now replace the style card's lists in full. Review text,
|
|
57
|
+
tick and other list overrides; include every entry you want to keep. This
|
|
58
|
+
also fixes four-element axes rectangles being appended to the card's rectangle.
|
|
59
|
+
- `Min` / `Max` and their lowercase aliases are elementwise with multiple
|
|
60
|
+
arguments; a single column argument reduces the whole column to one value.
|
|
61
|
+
Lowercase `e` is a column name, not a built-in constant; use `E` for Euler's number.
|
|
62
|
+
- Text and JSON version reports display `Jarvis-PLOT`. The PyPI distribution
|
|
63
|
+
name remains `JarvisPLOT`, and the import package remains `jarvisplot`.
|
|
64
|
+
|
|
65
|
+
### Documentation
|
|
66
|
+
|
|
67
|
+
- Include the public YAML examples and their supplied CSV data in the source
|
|
68
|
+
distribution, including the repaired full-width ternary example.
|
|
69
|
+
|
|
70
|
+
## 2.1.11 — 2026-10-18
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
|
|
74
|
+
- Manage plot fonts with `jplot fonts show|list|resolve|check|set|reset` and
|
|
75
|
+
`jplot man fonts`. The default font card uses Helvetica sans, STIXGeneral serif
|
|
76
|
+
and STIX MathText. Explicit YAML fonts and sizes take precedence.
|
|
77
|
+
- Save personal font overrides in `~/.jarvis/plot-fonts.json`; `JARVIS_HOME`
|
|
78
|
+
changes the configuration directory.
|
|
79
|
+
- When Helvetica is unavailable, use the first installed font among Arial,
|
|
80
|
+
Liberation Sans, Nimbus Sans and DejaVu Sans. `check` and `resolve` report the
|
|
81
|
+
selected font and the reason for substitution.
|
|
82
|
+
|
|
83
|
+
### Fixed
|
|
84
|
+
|
|
85
|
+
- Remove empty registered cache directories whose marker is missing while
|
|
86
|
+
preserving unmarked directories that contain files.
|
|
87
|
+
|
|
88
|
+
### Changed
|
|
89
|
+
|
|
90
|
+
- Use the font card's MathText font for cut descriptions by default.
|
|
91
|
+
- Find the plotting guides and reference documentation in
|
|
92
|
+
[Jarvis-Books](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/README.md).
|
|
93
|
+
Public examples remain available in `Example/`.
|
|
94
|
+
|
|
95
|
+
## 2.1.10 — 2026-10-13
|
|
96
|
+
|
|
97
|
+
- Native forest figures read multi-interval CSV sources and mappings,
|
|
98
|
+
intervals-only rows, box/scatter coexistence and literal CSV value
|
|
99
|
+
annotations. Values are plotted as supplied, never computed.
|
|
100
|
+
- Explicit shared x ticks, independent of grid divisions.
|
|
101
|
+
- MathText needs `math: true`; formula fonts are STIX by default with DejaVu
|
|
102
|
+
Sans as an alternative, selected separately for legends and cut
|
|
103
|
+
descriptions. Header notes, paragraphs and formulas are preserved, and
|
|
104
|
+
layout uses the actual font, glyph and annotation bounds.
|
|
105
|
+
- TTC faces keep their weight and slant; an explicit font size governs
|
|
106
|
+
measurement.
|
|
107
|
+
- Show consistent versions in the CLI, manuals, render reports and image
|
|
108
|
+
metadata. SVG output includes Dublin Core metadata. Export reports drawing
|
|
109
|
+
and I/O failures and retries only when a backend rejects metadata support.
|
|
110
|
+
- Packaged AI README (`jplot man agent-readme --json`), schema, manual and
|
|
111
|
+
example updates.
|
|
112
|
+
- Include native forest examples in the source distribution.
|
|
113
|
+
|
|
114
|
+
Existing forest YAML needs no migration. Custom export metadata must use keys
|
|
115
|
+
the selected backend supports; invalid SVG keys are now reported.
|
|
116
|
+
|
|
117
|
+
## Earlier releases
|
|
118
|
+
|
|
119
|
+
See the [PyPI release history](https://pypi.org/project/JarvisPLOT/#history)
|
|
120
|
+
and [GitHub Releases](https://github.com/Pengxuan-Zhu-Phys/Jarvis-PLOT/releases).
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Jarvis-PLOT — design-reference debug examples
|
|
2
|
+
|
|
3
|
+
One example per style card. The layout-reference figures set `debug: true`, which draws the
|
|
4
|
+
**design-reference overlay**: every axis is outlined, while all axes'
|
|
5
|
+
`rect = [left, bottom, width, height]` (figure fractions) and width/height in
|
|
6
|
+
centimetres are listed sequentially in one panel inside the primary `ax`.
|
|
7
|
+
The figure size and margin / colorbar-gap dimension lines remain on the outer
|
|
8
|
+
overlay.
|
|
9
|
+
|
|
10
|
+
Most figures have **no data layers** on purpose — they are pure layout references
|
|
11
|
+
for each style card. `corrplot_matrix.yaml` is the exception: a correlation
|
|
12
|
+
matrix has nothing to show without data, and its card solves the figure size
|
|
13
|
+
*from* the data rather than fixing it.
|
|
14
|
+
|
|
15
|
+
## Run
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
jplot Example/a4paper_2x1.yaml
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
(`plots/` and `.cache/` are created on the fly and are git-ignored.)
|
|
22
|
+
|
|
23
|
+
## Styles covered
|
|
24
|
+
|
|
25
|
+
Examples are grouped by geometry family and paper ratio:
|
|
26
|
+
|
|
27
|
+
| YAML | Style `[family, variant]` |
|
|
28
|
+
|------|---------------------------|
|
|
29
|
+
| `ternary_1x1.yaml` | Full-width `[a4paper_1x1, Ternary]` and `[gambit_1x1, Ternary]` |
|
|
30
|
+
| `a4paper_2x1.yaml` | All `a4paper_2x1` cards: `rect`, `rectRatio`, `rectMarginal`, `rectcmap`, `Ternary`, `TernaryCmap`, `rect_5x1`, `dynesty_runplot` |
|
|
31
|
+
| `a4paper_4x1_rectcmap.yaml` | `[a4paper_4x1, rectcmap]` |
|
|
32
|
+
| `gambit_2x1.yaml` | All `gambit_2x1` cards: `rectcmap`, `Ternary`, `TernaryCmap` |
|
|
33
|
+
| `corrplot_matrix.yaml` | `[corrplot, matrix]` via `type: correlation_matrix` — a real correlation matrix, not a layout reference |
|
|
34
|
+
| `corrplot_scales.yaml` | The same card at n = 6 … 100, one glyph method each — where the derivation stops working |
|
|
35
|
+
| `generated_data.yaml` | `[a4paper_2x1, rect]` — named `DataSet.type: generated`, a private generated curve, transforms, and `combine: separate` |
|
|
36
|
+
| `pdf_cdf_1d.yaml` | `[a4paper_2x1, rect]` — raw weighted samples, `PDF1D` repeat mean/std band, and pure `CDF1D` |
|
|
37
|
+
| `compact_legend.yaml` | `[a4paper_2x1, rect]` — layer-declared compact legend objects with band/line overlays and stacked boundary/mean keys |
|
|
38
|
+
| `legend_cards.yaml` | `[a4paper_2x1, rect]` — forward layer membership, object sorting, JSON card selection and a native line/errorbar composite |
|
|
39
|
+
|
|
40
|
+
These are every style registered in `jarvisplot/cards/style_preference.json`.
|
|
41
|
+
|
|
42
|
+
## The `corrplot` family is different
|
|
43
|
+
|
|
44
|
+
`[corrplot, matrix]` is the only card whose **figure size is derived, not
|
|
45
|
+
declared**. It carries a `Geometry` block in millimetres — cell size, padding,
|
|
46
|
+
colorbar width, a 170 mm cap — and the figure size falls out of the matrix:
|
|
47
|
+
`n` variables and the measured width of their names. Cell size and font size
|
|
48
|
+
stay fixed as `n` grows; the figure grows instead, and only past the cap does
|
|
49
|
+
the cell shrink (never the font).
|
|
50
|
+
|
|
51
|
+
That is why the card has no `figsize` and no axes `rect`, why its panel and
|
|
52
|
+
colorbar are called `axcorr` / `axccorr` rather than `ax` / `axc`, and why
|
|
53
|
+
`jplot cap styles` reports it as `geometry: solved, requires_type:
|
|
54
|
+
correlation_matrix`. Naming it in `style:` alone is an error, not a fallback.
|
|
55
|
+
|
|
56
|
+
`corrplot_matrix.yaml` therefore states no `figsize`, no axes `rect`, no tick
|
|
57
|
+
positions and no coordinates: `prebuild_correlations` measures the variable
|
|
58
|
+
names and writes all of it into the config before the figure is built. Add a
|
|
59
|
+
variable to the CSV and the figure grows — the cells and the type do not move.
|
|
60
|
+
|
|
61
|
+
It is also the one example written as a **`type:` macro** rather than as
|
|
62
|
+
layers, because the four reserved names here (`axcorr`, `axccorr`,
|
|
63
|
+
`method: corrplot`, `[corrplot, matrix]`) are not choices — they are one thing
|
|
64
|
+
spelled four times. `jplot config expand Example/corrplot_matrix.yaml --figure
|
|
65
|
+
corrplot_matrix` shows the single layer it lowers to.
|
|
66
|
+
|
|
67
|
+
Under it is **`method: corrplot`**, a drawing primitive of its own rather than a
|
|
68
|
+
`scatter` layer with a computed marker size. That distinction is what makes
|
|
69
|
+
`method: circle | square | ellipse | color | shade | pie | number` mean
|
|
70
|
+
anything: only `circle` is expressible as a scatter marker. The `corrplot:`
|
|
71
|
+
block takes R's own formals, spelled as R spells them.
|
|
72
|
+
|
|
73
|
+
The one split worth knowing is where each formal is applied. `order`,
|
|
74
|
+
`addrect`, `hclust.method`, `tl.pos` and `col` decide **which variable sits
|
|
75
|
+
where** (or what the whole scale is), and the tick labels are written at config
|
|
76
|
+
time — so those are resolved by `prebuild_correlations`, which writes the
|
|
77
|
+
resolved order into the transform's `columns`. Everything else describes **one
|
|
78
|
+
cell** and is applied at draw time. Nothing reorders a matrix after its labels
|
|
79
|
+
exist. `jplot man type-correlation-matrix` and
|
|
80
|
+
[CORRELATION_MATRIX.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/CORRELATION_MATRIX.md) carry the full crosswalk.
|
|
81
|
+
|
|
82
|
+
### Where it stops working
|
|
83
|
+
|
|
84
|
+
`corrplot_scales.yaml` is the experiment behind the claim above: one 100-column
|
|
85
|
+
table, one card, seven values of `n`, a different glyph method each time. Up to
|
|
86
|
+
`n = 33` the cell stays 4.20 mm and the figure grows to fill 170 mm. From
|
|
87
|
+
`n = 40` the width is pinned and the **cell** shrinks — never the font, which
|
|
88
|
+
is what lets two of these sit in one paper. At `n = 100` even the 1.60 mm cell
|
|
89
|
+
floor does not fit: the solver keeps the floor, overruns the page by 13.8 mm,
|
|
90
|
+
and says so. The two `corrplot_100_*` figures are included precisely because
|
|
91
|
+
they are past the limit — the labelled one has 100 names colliding in 160 mm,
|
|
92
|
+
which is what "past the limit" looks like.
|
|
93
|
+
|
|
94
|
+
## Notes
|
|
95
|
+
|
|
96
|
+
- Variant tokens are case-sensitive: `rect`, `rectcmap` (lower-case) and
|
|
97
|
+
`Ternary`, `TernaryCmap` (capitalized).
|
|
98
|
+
- To turn the overlay off, set `debug: false` (or remove it).
|
|
99
|
+
- To see the overlay on a real plot, add normal `layers` to any of these files.
|
|
100
|
+
|
|
101
|
+
See the docs: **Jarvis-PLOT → Style Cards and Layout** for a full explanation of
|
|
102
|
+
the card JSON structure and the overlay.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Design-reference debug examples for all a4paper_2x1 style cards.
|
|
2
|
+
#
|
|
3
|
+
# Run: jplot Example/a4paper_2x1.yaml
|
|
4
|
+
#
|
|
5
|
+
# Each figure is a pure layout reference with debug overlay enabled.
|
|
6
|
+
|
|
7
|
+
version: '0.3'
|
|
8
|
+
project:
|
|
9
|
+
name: a4paper_2x1
|
|
10
|
+
Functions: []
|
|
11
|
+
DataSet: []
|
|
12
|
+
Figures:
|
|
13
|
+
- name: a4paper_2x1_Ternary
|
|
14
|
+
debug: true # draw the design-reference dimension overlay
|
|
15
|
+
style: [a4paper_2x1, Ternary]
|
|
16
|
+
frame:
|
|
17
|
+
axtri: {labels: {left: "A", bottom: "B", right: "C"}}
|
|
18
|
+
layers: [] # empty -- layout reference only
|
|
19
|
+
|
|
20
|
+
- name: a4paper_2x1_TernaryCmap
|
|
21
|
+
debug: true # draw the design-reference dimension overlay
|
|
22
|
+
style: [a4paper_2x1, TernaryCmap]
|
|
23
|
+
frame:
|
|
24
|
+
axtri: {labels: {left: "A", bottom: "B", right: "C"}}
|
|
25
|
+
axc: {label: {ylabel: "$z$"}}
|
|
26
|
+
layers: [] # empty -- layout reference only
|
|
27
|
+
|
|
28
|
+
- name: a4paper_2x1_dynesty_runplot
|
|
29
|
+
debug: true # draw the design-reference dimension overlay
|
|
30
|
+
style: [a4paper_2x1, dynesty_runplot]
|
|
31
|
+
layers: [] # empty -- layout reference only
|
|
32
|
+
|
|
33
|
+
- name: a4paper_2x1_rect
|
|
34
|
+
debug: true # draw the design-reference dimension overlay
|
|
35
|
+
style: [a4paper_2x1, rect]
|
|
36
|
+
frame:
|
|
37
|
+
ax: {labels: {x: "$x$", y: "$y$"}}
|
|
38
|
+
layers: [] # empty -- layout reference only
|
|
39
|
+
- name: a4paper_2x1_rectRatio
|
|
40
|
+
debug: true # draw the design-reference dimension overlay
|
|
41
|
+
style: [a4paper_2x1, rectRatio]
|
|
42
|
+
layers: [] # empty -- layout reference only
|
|
43
|
+
|
|
44
|
+
- name: a4paper_2x1_rectMarginal
|
|
45
|
+
debug: true # draw the design-reference dimension overlay
|
|
46
|
+
style: [a4paper_2x1, rectMarginal]
|
|
47
|
+
frame:
|
|
48
|
+
axl: {labels: {y: "$y$"}} # the strips carry the shared axis' labels
|
|
49
|
+
axb: {labels: {x: "$x$"}}
|
|
50
|
+
axc: {label: {ylabel: "$z$"}}
|
|
51
|
+
layers: [] # empty -- layout reference only
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
- name: a4paper_2x1_rect_5x1
|
|
56
|
+
debug: true # draw the design-reference dimension overlay
|
|
57
|
+
style: [a4paper_2x1, rect_5x1]
|
|
58
|
+
layers: [] # empty -- layout reference only
|
|
59
|
+
|
|
60
|
+
- name: a4paper_2x1_rectcmap
|
|
61
|
+
debug: true # draw the design-reference dimension overlay
|
|
62
|
+
style: [a4paper_2x1, rectcmap]
|
|
63
|
+
frame:
|
|
64
|
+
ax: {labels: {x: "$x$", y: "$y$"}}
|
|
65
|
+
axc: {label: {ylabel: "$z$"}}
|
|
66
|
+
layers: [] # empty -- layout reference only
|
|
67
|
+
|
|
68
|
+
output:
|
|
69
|
+
dir: ./plots
|
|
70
|
+
dpi: 150
|
|
71
|
+
formats:
|
|
72
|
+
- png
|
|
73
|
+
- pdf
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Design-reference debug example -- style [a4paper_4x1, rectcmap]
|
|
2
|
+
#
|
|
3
|
+
# Run: jplot Example/a4paper_4x1_rectcmap.yaml
|
|
4
|
+
# Shows: the axes layout of this style card -- every axis box with its
|
|
5
|
+
# rect [left, bottom, width, height] and width/height in cm, the
|
|
6
|
+
# figure size, margins and colorbar gap -- drawn by `debug: true`.
|
|
7
|
+
#
|
|
8
|
+
# The figure has no data layers on purpose: this is a pure layout reference.
|
|
9
|
+
|
|
10
|
+
version: "0.3"
|
|
11
|
+
|
|
12
|
+
project:
|
|
13
|
+
name: design_a4paper_4x1_rectcmap
|
|
14
|
+
|
|
15
|
+
Functions: []
|
|
16
|
+
DataSet: []
|
|
17
|
+
|
|
18
|
+
Figures:
|
|
19
|
+
- name: a4paper_4x1_rectcmap
|
|
20
|
+
debug: true # draw the design-reference dimension overlay
|
|
21
|
+
style: [a4paper_4x1, rectcmap]
|
|
22
|
+
frame:
|
|
23
|
+
ax: {labels: {x: "$x$", y: "$y$"}}
|
|
24
|
+
axc: {label: {ylabel: "$z$"}}
|
|
25
|
+
layers: [] # empty -- layout reference only
|
|
26
|
+
|
|
27
|
+
output:
|
|
28
|
+
dir: ./plots
|
|
29
|
+
dpi: 150
|
|
30
|
+
formats: [png]
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
DataSet: []
|
|
2
|
+
Figures:
|
|
3
|
+
- name: compact_legend
|
|
4
|
+
style:
|
|
5
|
+
- a4paper_2x1
|
|
6
|
+
- rect
|
|
7
|
+
frame:
|
|
8
|
+
ax:
|
|
9
|
+
xlim:
|
|
10
|
+
- 0
|
|
11
|
+
- 1
|
|
12
|
+
ylim:
|
|
13
|
+
- 0
|
|
14
|
+
- 7
|
|
15
|
+
labels:
|
|
16
|
+
x: Score
|
|
17
|
+
y: Density
|
|
18
|
+
legend:
|
|
19
|
+
loc: upper left
|
|
20
|
+
ncols: 2
|
|
21
|
+
prop:
|
|
22
|
+
family: STIXGeneral
|
|
23
|
+
size: 4.6
|
|
24
|
+
card: compact
|
|
25
|
+
order:
|
|
26
|
+
- signal_train
|
|
27
|
+
- signal_test
|
|
28
|
+
- background_train
|
|
29
|
+
- background_test
|
|
30
|
+
layers:
|
|
31
|
+
- name: signal_train_band
|
|
32
|
+
axes: ax
|
|
33
|
+
method: fill_between
|
|
34
|
+
coordinates:
|
|
35
|
+
x: &id001
|
|
36
|
+
- 0
|
|
37
|
+
- 0.15
|
|
38
|
+
- 0.3
|
|
39
|
+
- 0.45
|
|
40
|
+
- 0.6
|
|
41
|
+
- 0.75
|
|
42
|
+
- 1
|
|
43
|
+
y1: &id003
|
|
44
|
+
- 0.0
|
|
45
|
+
- 0.16000000000000003
|
|
46
|
+
- 1.6
|
|
47
|
+
- 3.2
|
|
48
|
+
- 1.6
|
|
49
|
+
- 0.4
|
|
50
|
+
- 0.0
|
|
51
|
+
y2: &id002
|
|
52
|
+
- 0.0
|
|
53
|
+
- 0.24
|
|
54
|
+
- 2.4
|
|
55
|
+
- 4.8
|
|
56
|
+
- 2.4
|
|
57
|
+
- 0.6
|
|
58
|
+
- 0.0
|
|
59
|
+
style:
|
|
60
|
+
color: '#56B4E9'
|
|
61
|
+
alpha: 0.3
|
|
62
|
+
linewidth: 0
|
|
63
|
+
legend:
|
|
64
|
+
object: signal_train
|
|
65
|
+
label: Signal train
|
|
66
|
+
role: band
|
|
67
|
+
- name: signal_train
|
|
68
|
+
axes: ax
|
|
69
|
+
method: plot
|
|
70
|
+
coordinates:
|
|
71
|
+
x: *id001
|
|
72
|
+
y:
|
|
73
|
+
- 0
|
|
74
|
+
- 0.2
|
|
75
|
+
- 2
|
|
76
|
+
- 4
|
|
77
|
+
- 2
|
|
78
|
+
- 0.5
|
|
79
|
+
- 0
|
|
80
|
+
style:
|
|
81
|
+
color: '#56B4E9'
|
|
82
|
+
linewidth: 0.7
|
|
83
|
+
legend:
|
|
84
|
+
object: signal_train
|
|
85
|
+
label: Signal train
|
|
86
|
+
role: line
|
|
87
|
+
- name: signal_test_high
|
|
88
|
+
axes: ax
|
|
89
|
+
method: plot
|
|
90
|
+
coordinates:
|
|
91
|
+
x: *id001
|
|
92
|
+
y: *id002
|
|
93
|
+
style:
|
|
94
|
+
color: '#005A8D'
|
|
95
|
+
alpha: 0.3
|
|
96
|
+
linewidth: 0.4
|
|
97
|
+
legend:
|
|
98
|
+
object: signal_test
|
|
99
|
+
label: Signal test
|
|
100
|
+
role: upper
|
|
101
|
+
- name: signal_test_low
|
|
102
|
+
axes: ax
|
|
103
|
+
method: plot
|
|
104
|
+
coordinates:
|
|
105
|
+
x: *id001
|
|
106
|
+
y: *id003
|
|
107
|
+
style:
|
|
108
|
+
color: '#005A8D'
|
|
109
|
+
alpha: 0.3
|
|
110
|
+
linewidth: 0.4
|
|
111
|
+
legend:
|
|
112
|
+
object: signal_test
|
|
113
|
+
label: Signal test
|
|
114
|
+
role: lower
|
|
115
|
+
- name: signal_test
|
|
116
|
+
axes: ax
|
|
117
|
+
method: plot
|
|
118
|
+
coordinates:
|
|
119
|
+
x: *id001
|
|
120
|
+
y:
|
|
121
|
+
- 0.0
|
|
122
|
+
- 0.20600000000000002
|
|
123
|
+
- 2.06
|
|
124
|
+
- 4.12
|
|
125
|
+
- 2.06
|
|
126
|
+
- 0.515
|
|
127
|
+
- 0.0
|
|
128
|
+
style:
|
|
129
|
+
color: '#005A8D'
|
|
130
|
+
linewidth: 0.7
|
|
131
|
+
legend:
|
|
132
|
+
object: signal_test
|
|
133
|
+
label: Signal test
|
|
134
|
+
role: line
|
|
135
|
+
- name: background_train_band
|
|
136
|
+
axes: ax
|
|
137
|
+
method: fill_between
|
|
138
|
+
coordinates:
|
|
139
|
+
x: *id001
|
|
140
|
+
y1: &id005
|
|
141
|
+
- 0.0
|
|
142
|
+
- 0.8
|
|
143
|
+
- 3.2
|
|
144
|
+
- 1.6
|
|
145
|
+
- 0.4
|
|
146
|
+
- 0.08000000000000002
|
|
147
|
+
- 0.0
|
|
148
|
+
y2: &id004
|
|
149
|
+
- 0.0
|
|
150
|
+
- 1.2
|
|
151
|
+
- 4.8
|
|
152
|
+
- 2.4
|
|
153
|
+
- 0.6
|
|
154
|
+
- 0.12
|
|
155
|
+
- 0.0
|
|
156
|
+
style:
|
|
157
|
+
color: '#E69F00'
|
|
158
|
+
alpha: 0.3
|
|
159
|
+
linewidth: 0
|
|
160
|
+
legend:
|
|
161
|
+
object: background_train
|
|
162
|
+
label: Background train
|
|
163
|
+
role: band
|
|
164
|
+
- name: background_train
|
|
165
|
+
axes: ax
|
|
166
|
+
method: plot
|
|
167
|
+
coordinates:
|
|
168
|
+
x: *id001
|
|
169
|
+
y:
|
|
170
|
+
- 0
|
|
171
|
+
- 1
|
|
172
|
+
- 4
|
|
173
|
+
- 2
|
|
174
|
+
- 0.5
|
|
175
|
+
- 0.1
|
|
176
|
+
- 0
|
|
177
|
+
style:
|
|
178
|
+
color: '#E69F00'
|
|
179
|
+
linewidth: 0.7
|
|
180
|
+
legend:
|
|
181
|
+
object: background_train
|
|
182
|
+
label: Background train
|
|
183
|
+
role: line
|
|
184
|
+
- name: background_test_high
|
|
185
|
+
axes: ax
|
|
186
|
+
method: plot
|
|
187
|
+
coordinates:
|
|
188
|
+
x: *id001
|
|
189
|
+
y: *id004
|
|
190
|
+
style:
|
|
191
|
+
color: '#A23E00'
|
|
192
|
+
alpha: 0.3
|
|
193
|
+
linewidth: 0.4
|
|
194
|
+
legend:
|
|
195
|
+
object: background_test
|
|
196
|
+
label: Background test
|
|
197
|
+
role: upper
|
|
198
|
+
- name: background_test_low
|
|
199
|
+
axes: ax
|
|
200
|
+
method: plot
|
|
201
|
+
coordinates:
|
|
202
|
+
x: *id001
|
|
203
|
+
y: *id005
|
|
204
|
+
style:
|
|
205
|
+
color: '#A23E00'
|
|
206
|
+
alpha: 0.3
|
|
207
|
+
linewidth: 0.4
|
|
208
|
+
legend:
|
|
209
|
+
object: background_test
|
|
210
|
+
label: Background test
|
|
211
|
+
role: lower
|
|
212
|
+
- name: background_test
|
|
213
|
+
axes: ax
|
|
214
|
+
method: plot
|
|
215
|
+
coordinates:
|
|
216
|
+
x: *id001
|
|
217
|
+
y:
|
|
218
|
+
- 0.0
|
|
219
|
+
- 1.03
|
|
220
|
+
- 4.12
|
|
221
|
+
- 2.06
|
|
222
|
+
- 0.515
|
|
223
|
+
- 0.10300000000000001
|
|
224
|
+
- 0.0
|
|
225
|
+
style:
|
|
226
|
+
color: '#A23E00'
|
|
227
|
+
linewidth: 0.7
|
|
228
|
+
legend:
|
|
229
|
+
object: background_test
|
|
230
|
+
label: Background test
|
|
231
|
+
role: line
|
|
232
|
+
output:
|
|
233
|
+
dir: ./plots
|
|
234
|
+
formats:
|
|
235
|
+
- png
|
|
236
|
+
- pdf
|
|
237
|
+
dpi: 300
|