jarvisplot 2.1.9__tar.gz → 2.1.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. jarvisplot-2.1.11/CHANGELOG.md +61 -0
  2. jarvisplot-2.1.11/Example/forest/README.md +69 -0
  3. jarvisplot-2.1.11/Example/forest/box.yaml +25 -0
  4. jarvisplot-2.1.11/Example/forest/data/box.csv +3 -0
  5. jarvisplot-2.1.11/Example/forest/data/forest-points.csv +242 -0
  6. jarvisplot-2.1.11/Example/forest/data/forest-rows.csv +98 -0
  7. jarvisplot-2.1.11/Example/forest/data/interval.csv +3 -0
  8. jarvisplot-2.1.11/Example/forest/data/points.csv +5 -0
  9. jarvisplot-2.1.11/Example/forest/data/summary-intervals.csv +7 -0
  10. jarvisplot-2.1.11/Example/forest/data/summary-labels.csv +3 -0
  11. jarvisplot-2.1.11/Example/forest/data/summary-points.csv +21 -0
  12. jarvisplot-2.1.11/Example/forest/data/summary-rows.csv +3 -0
  13. jarvisplot-2.1.11/Example/forest/interval.yaml +21 -0
  14. jarvisplot-2.1.11/Example/forest/intervals-only.yaml +52 -0
  15. jarvisplot-2.1.11/Example/forest/multi-interval.yaml +69 -0
  16. jarvisplot-2.1.11/Example/forest/real-demo-debug.yaml +54 -0
  17. jarvisplot-2.1.11/Example/forest/real-demo.yaml +55 -0
  18. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/PKG-INFO +87 -27
  19. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/SOURCES.txt +36 -3
  20. jarvisplot-2.1.11/MANIFEST.in +36 -0
  21. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/PKG-INFO +87 -27
  22. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/README.md +86 -26
  23. jarvisplot-2.1.11/VERSION +1 -0
  24. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/config_runtime.py +6 -3
  25. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/corr_layout.py +13 -6
  26. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/corr_layout_diamond.py +3 -1
  27. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/corrplot_runtime.py +29 -12
  28. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/figure.py +52 -63
  29. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/forest_legend.py +8 -6
  30. jarvisplot-2.1.11/jarvisplot/Figure/forest_runtime.py +493 -0
  31. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/agent_io.py +1 -1
  32. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cache_registry.py +17 -1
  33. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/capabilities.py +4 -3
  34. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/args.json +12 -2
  35. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/corrplot/diamond.json +0 -1
  36. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/corrplot/matrix.json +0 -1
  37. jarvisplot-2.1.11/jarvisplot/cards/fonts/default.json +14 -0
  38. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/forest/swiss_column.json +6 -0
  39. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/legends/default/legend-card.json +5 -1
  40. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cli.py +4 -8
  41. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/core_runtime.py +65 -7
  42. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/dryrun_runtime.py +1 -1
  43. jarvisplot-2.1.11/jarvisplot/font_runtime.py +232 -0
  44. jarvisplot-2.1.11/jarvisplot/fonts.py +309 -0
  45. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/forest_contract.py +172 -20
  46. jarvisplot-2.1.11/jarvisplot/forest_text.py +155 -0
  47. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/legend_cards.py +49 -1
  48. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/man_render_agent.py +20 -1
  49. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/man_render_human.py +2 -1
  50. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/agent-output.yaml +1 -1
  51. jarvisplot-2.1.11/jarvisplot/manual_cards/agent-readme.yaml +121 -0
  52. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/cache.yaml +2 -1
  53. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/cli-map.yaml +8 -2
  54. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/debug-overlay.yaml +1 -1
  55. jarvisplot-2.1.11/jarvisplot/manual_cards/fonts.yaml +156 -0
  56. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/legend.yaml +22 -1
  57. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/manifest.yaml +7 -1
  58. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/style-axes.yaml +1 -1
  59. jarvisplot-2.1.11/jarvisplot/manual_cards/type-forest.yaml +371 -0
  60. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/workflow.yaml +1 -1
  61. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/figure.json +14 -1
  62. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/legend-card.json +36 -0
  63. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/legend.json +3 -0
  64. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/types/forest.json +139 -0
  65. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/validation.py +1 -1
  66. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/__init__.py +3 -1
  67. jarvisplot-2.1.11/jarvisplot/verbs/fonts.py +240 -0
  68. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/man.py +3 -1
  69. jarvisplot-2.1.11/jarvisplot/version.py +21 -0
  70. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/pyproject.toml +24 -1
  71. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_cache_registry.py +32 -0
  72. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_figure_contracts.py +7 -2
  73. jarvisplot-2.1.11/tests/test_font_runtime.py +227 -0
  74. jarvisplot-2.1.11/tests/test_fonts.py +139 -0
  75. jarvisplot-2.1.11/tests/test_fonts_cli.py +183 -0
  76. jarvisplot-2.1.11/tests/test_forest.py +1468 -0
  77. jarvisplot-2.1.11/tests/test_forest_examples.py +70 -0
  78. jarvisplot-2.1.11/tests/test_forest_text.py +36 -0
  79. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_legend_cards.py +31 -2
  80. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_legend_runtime.py +24 -0
  81. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_man_cli.py +77 -0
  82. jarvisplot-2.1.11/tests/test_release_contract.py +84 -0
  83. jarvisplot-2.1.11/tests/test_savefig_provenance.py +85 -0
  84. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_schema_catalog.py +11 -1
  85. jarvisplot-2.1.11/tests/test_version.py +47 -0
  86. jarvisplot-2.1.11/tools/check_release.py +90 -0
  87. jarvisplot-2.1.9/jarvisplot/Figure/forest_runtime.py +0 -294
  88. jarvisplot-2.1.9/jarvisplot/forest_text.py +0 -86
  89. jarvisplot-2.1.9/jarvisplot/manual_cards/type-forest.yaml +0 -244
  90. jarvisplot-2.1.9/tests/test_docs_status_labels.py +0 -57
  91. jarvisplot-2.1.9/tests/test_forest.py +0 -619
  92. jarvisplot-2.1.9/tests/test_template_json.py +0 -26
  93. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/dependency_links.txt +0 -0
  94. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/entry_points.txt +0 -0
  95. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/requires.txt +0 -0
  96. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/top_level.txt +0 -0
  97. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/__init__.py +0 -0
  98. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/adapters_rect.py +0 -0
  99. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/adapters_ternary.py +0 -0
  100. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/adaptive_cdf_runtime.py +0 -0
  101. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/bin_stat_runtime.py +0 -0
  102. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/cards/std_axes_adapter_config.json +0 -0
  103. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/colorbar_runtime.py +0 -0
  104. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/corr_order.py +0 -0
  105. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/correlation_runtime.py +0 -0
  106. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/data_pipelines.py +0 -0
  107. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/debug_config.py +0 -0
  108. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/density_cell_runtime.py +0 -0
  109. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/design_runtime.py +0 -0
  110. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/distribution_1d_runtime.py +0 -0
  111. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/dynesty_runtime.py +0 -0
  112. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/figure_types.py +0 -0
  113. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/forest_debug.py +0 -0
  114. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/helper.py +0 -0
  115. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/interp_2d_runtime.py +0 -0
  116. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/interp_natural_neighbor.py +0 -0
  117. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/interp_natural_neighbor_exact.py +0 -0
  118. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/layer_runtime.py +0 -0
  119. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/layout_runtime.py +0 -0
  120. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/legend_runtime.py +0 -0
  121. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/method_registry.py +0 -0
  122. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/posterior_density_runtime.py +0 -0
  123. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/posterior_hpd.py +0 -0
  124. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/posterior_mesh.py +0 -0
  125. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/preprocessor.py +0 -0
  126. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/preprocessor_runtime.py +0 -0
  127. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/profile_runtime.py +0 -0
  128. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/significance_runtime.py +0 -0
  129. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/Figure/style_runtime.py +0 -0
  130. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/__init__.py +0 -0
  131. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/agent_digest.py +0 -0
  132. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cache_store.py +0 -0
  133. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/1x1/ternary.json +0 -0
  134. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/dynesty_runplot.json +0 -0
  135. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rect.json +0 -0
  136. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rect5x1.json +0 -0
  137. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rect_cmap.json +0 -0
  138. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rect_marginal.json +0 -0
  139. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rectratio.json +0 -0
  140. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/ternary.json +0 -0
  141. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/ternary_cmap.json +0 -0
  142. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/4x1/rect.json +0 -0
  143. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/4x1/rect_cmap.json +0 -0
  144. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/4x1/ternary.json +0 -0
  145. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/4x1/ternary_cmap.json +0 -0
  146. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/colors/colormaps.json +0 -0
  147. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/default/output.json +0 -0
  148. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/flowchart/default.json +0 -0
  149. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/gambit/1x1/ternary.json +0 -0
  150. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/gambit/2x1/rect_cmap.json +0 -0
  151. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/gambit/2x1/ternary.json +0 -0
  152. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/gambit/2x1/ternary_cmap.json +0 -0
  153. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/JarvisHEP.png +0 -0
  154. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/JarvisHEP.png +0 -0
  155. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/calculator.png +0 -0
  156. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/inputfile.png +0 -0
  157. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/opera.png +0 -0
  158. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/outputfile.png +0 -0
  159. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/sampler.png +0 -0
  160. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/gambit.png +0 -0
  161. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/icons/gambit_small.png +0 -0
  162. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/legends/compact/legend-card.json +0 -0
  163. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/legends/paper/legend-card.json +0 -0
  164. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/legends/presentation/legend-card.json +0 -0
  165. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cards/style_preference.json +0 -0
  166. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/cli_help.py +0 -0
  167. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/client.py +0 -0
  168. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/column_demand.py +0 -0
  169. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/column_probe.py +0 -0
  170. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/config.py +0 -0
  171. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/config_address.py +0 -0
  172. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/core.py +0 -0
  173. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/core_assets.py +0 -0
  174. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/data_access.py +0 -0
  175. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/data_generation_contracts.py +0 -0
  176. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/data_loader.py +0 -0
  177. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/data_loader_hdf5.py +0 -0
  178. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/data_loader_runtime.py +0 -0
  179. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/data_loader_summary.py +0 -0
  180. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/dataset_types.py +0 -0
  181. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/diagnostic_guidance.py +0 -0
  182. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/diagnostics.py +0 -0
  183. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/distribution_1d_config.py +0 -0
  184. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/expr_names.py +0 -0
  185. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/fix_apply.py +0 -0
  186. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/flowchart.py +0 -0
  187. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/generated_data.py +0 -0
  188. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/inner_func.py +0 -0
  189. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/man_catalog.py +0 -0
  190. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/man_methods.py +0 -0
  191. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/man_transforms.py +0 -0
  192. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/data-columns.yaml +0 -0
  193. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/diagnostics.yaml +0 -0
  194. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/dryrun-viz.yaml +0 -0
  195. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/field-interp.yaml +0 -0
  196. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/generated-data.yaml +0 -0
  197. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/layer-method.yaml +0 -0
  198. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/method_notes.yaml +0 -0
  199. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/type-correlation-matrix.yaml +0 -0
  200. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/type-posterior-2d.yaml +0 -0
  201. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/type-profile-2d.yaml +0 -0
  202. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/validate.yaml +0 -0
  203. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/manual_cards/yaml-root.yaml +0 -0
  204. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/memtrace.py +0 -0
  205. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/method_contracts.py +0 -0
  206. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/render_health.py +0 -0
  207. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/common.json +0 -0
  208. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/dataset.json +0 -0
  209. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/distribution-1d.json +0 -0
  210. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/generated-data.json +0 -0
  211. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/layer.json +0 -0
  212. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/core/transform.json +0 -0
  213. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/manifest.json +0 -0
  214. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/bar.json +0 -0
  215. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/barh.json +0 -0
  216. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/contour.json +0 -0
  217. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/contourf.json +0 -0
  218. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/corrplot.json +0 -0
  219. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/dynesty_runplot.json +0 -0
  220. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/errorbar.json +0 -0
  221. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/fill.json +0 -0
  222. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/fill_between.json +0 -0
  223. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/fill_betweenx.json +0 -0
  224. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/hist.json +0 -0
  225. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/hist2d.json +0 -0
  226. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/imshow.json +0 -0
  227. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/jpcontour.json +0 -0
  228. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/jpcontourf.json +0 -0
  229. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/jpfield.json +0 -0
  230. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/pcolor.json +0 -0
  231. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/pcolormesh.json +0 -0
  232. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/plot.json +0 -0
  233. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/quiver.json +0 -0
  234. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/scatter.json +0 -0
  235. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/stairs.json +0 -0
  236. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/step.json +0 -0
  237. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/tricontour.json +0 -0
  238. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/tricontourf.json +0 -0
  239. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/tripcolor.json +0 -0
  240. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/tripcolor_axes.json +0 -0
  241. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/triplot.json +0 -0
  242. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/voronoi.json +0 -0
  243. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/methods/voronoif.json +0 -0
  244. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema/plot-config.json +0 -0
  245. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema_catalog.py +0 -0
  246. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/schema_diagnostics.py +0 -0
  247. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/templates_catalog.py +0 -0
  248. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/transform_contracts.py +0 -0
  249. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/utils/__init__.py +0 -0
  250. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/utils/cmaps.py +0 -0
  251. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/utils/dataframes.py +0 -0
  252. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/utils/expression.py +0 -0
  253. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/utils/interpolator.py +0 -0
  254. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/utils/pathing.py +0 -0
  255. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/cache.py +0 -0
  256. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/cap.py +0 -0
  257. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/config_cmd.py +0 -0
  258. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/data.py +0 -0
  259. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/doctor.py +0 -0
  260. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/dryrun.py +0 -0
  261. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/explain.py +0 -0
  262. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/suggest.py +0 -0
  263. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/template.py +0 -0
  264. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/verbs/validate.py +0 -0
  265. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/jarvisplot/yaml_io.py +0 -0
  266. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/setup.cfg +0 -0
  267. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_adaptive_cdf.py +0 -0
  268. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_add_column.py +0 -0
  269. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_agent_digest.py +0 -0
  270. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_agent_envelope.py +0 -0
  271. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_axis_title.py +0 -0
  272. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_cache_cleanup.py +0 -0
  273. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_capabilities.py +0 -0
  274. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_card_debug_shape.py +0 -0
  275. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_cli_help.py +0 -0
  276. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_cli_verbs.py +0 -0
  277. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_cmaps.py +0 -0
  278. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_column_existence.py +0 -0
  279. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_column_pruning.py +0 -0
  280. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_config_addressing.py +0 -0
  281. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_config_edit.py +0 -0
  282. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_config_expand.py +0 -0
  283. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_correlation_runtime.py +0 -0
  284. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_corrplot.py +0 -0
  285. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_data_access.py +0 -0
  286. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_data_describe.py +0 -0
  287. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_data_head_eval.py +0 -0
  288. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_data_loader_contracts.py +0 -0
  289. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_data_pipelines.py +0 -0
  290. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_debug_config.py +0 -0
  291. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_debug_switches.py +0 -0
  292. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_debug_yaml_override.py +0 -0
  293. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_density_cell_transform.py +0 -0
  294. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_design_runtime.py +0 -0
  295. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_diagnostic_guidance.py +0 -0
  296. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_distribution_1d_transform.py +0 -0
  297. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_doctor_partial.py +0 -0
  298. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_examples_validate.py +0 -0
  299. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_explain.py +0 -0
  300. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_expression_semantics.py +0 -0
  301. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_figure_type_expander.py +0 -0
  302. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_fix_application.py +0 -0
  303. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_flowchart_renderer.py +0 -0
  304. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_generated_data.py +0 -0
  305. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_imshow_adapter.py +0 -0
  306. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_interp_2d_transform.py +0 -0
  307. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_interp_natural_neighbor.py +0 -0
  308. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_interpolator_contracts.py +0 -0
  309. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_jpcontour_methods.py +0 -0
  310. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_layer_legend.py +0 -0
  311. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_method_contracts.py +0 -0
  312. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_parse_data_metadata.py +0 -0
  313. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_pathing_contracts.py +0 -0
  314. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_posterior_hpd.py +0 -0
  315. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_profile_runtime.py +0 -0
  316. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_render_health.py +0 -0
  317. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_render_lifecycle.py +0 -0
  318. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_row_ledger.py +0 -0
  319. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_suggest.py +0 -0
  320. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_suggest_axes.py +0 -0
  321. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_template_catalog.py +0 -0
  322. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_ternary_debug.py +0 -0
  323. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_transform_contracts.py +0 -0
  324. {jarvisplot-2.1.9 → jarvisplot-2.1.11}/tests/test_validate_no_matplotlib.py +0 -0
@@ -0,0 +1,61 @@
1
+ # Changelog
2
+
3
+ Release history of the `JarvisPLOT` distribution (import package `jarvisplot`,
4
+ CLI `jplot`). Design documents, specifications and the roadmap live 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.11 — 2026-10-18
8
+
9
+ - Exclude maintainer release helpers, local configuration, credentials, and
10
+ generated files from distribution archives.
11
+
12
+ - `./jprel X.Y.Z` now completes PyPI upload, local editable install, Git tag,
13
+ and GitHub release. `--dry` checks inputs without changing the checkout.
14
+ - Remove private research cards and scripts under `bin/` from version control
15
+ and distribution archives; public examples remain under `Example/`.
16
+ - Cache cleanup removes empty registered cache directories whose marker is
17
+ missing, while retaining unmarked directories containing files.
18
+ - Font card: `jplot fonts show|list|resolve|check|set|reset` and
19
+ `jplot man fonts`. Normal YAML rendering applies the bundled role card
20
+ (Helvetica sans, STIXGeneral serif, STIX MathText); explicit YAML fonts and
21
+ sizes take precedence. Personal overrides live in
22
+ `~/.jarvis/plot-fonts.json` (`JARVIS_HOME` overrides the directory).
23
+ - When Helvetica is absent, the first installed of Arial, Liberation Sans,
24
+ Nimbus Sans and DejaVu Sans is used; `check` and `resolve` report the actual
25
+ font and the substitution reason.
26
+ - Cut descriptions take their MathText font from the font card by default.
27
+ - Documentation moved to Jarvis-Books; the repository keeps only `README.md`,
28
+ `CHANGELOG.md` and the example READMEs. The source distribution ships
29
+ `CHANGELOG.md` instead of a `docs/` tree, and `tools/check_release.py` checks
30
+ the latest `CHANGELOG.md` entry instead of the old release-note files.
31
+
32
+ ## 2.1.10 — 2026-10-13
33
+
34
+ - Native forest figures read multi-interval CSV sources and mappings,
35
+ intervals-only rows, box/scatter coexistence and literal CSV value
36
+ annotations. Values are plotted as supplied, never computed.
37
+ - Explicit shared x ticks, independent of grid divisions.
38
+ - MathText needs `math: true`; formula fonts are STIX by default with DejaVu
39
+ Sans as an alternative, selected separately for legends and cut
40
+ descriptions. Header notes, paragraphs and formulas are preserved, and
41
+ layout uses the actual font, glyph and annotation bounds.
42
+ - TTC faces keep their weight and slant; an explicit font size governs
43
+ measurement.
44
+ - CLI, manuals, render reports and image metadata read the version from
45
+ `jarvisplot/version.py`. SVG output carries Dublin Core metadata; export
46
+ retries only on a backend's unsupported-metadata error and reports drawing
47
+ and I/O failures.
48
+ - Packaged AI README (`jplot man agent-readme --json`), schema, manual and
49
+ example updates.
50
+ - `tools/check_release.py` source, tag and wheel gates; the sdist includes the
51
+ native forest examples; CI runs Linux Python 3.10–3.13 and macOS 3.13.
52
+
53
+ Existing forest YAML needs no migration. Custom export metadata must use keys
54
+ the selected backend supports; invalid SVG keys are now reported.
55
+
56
+ ## Earlier releases
57
+
58
+ See the [PyPI release history](https://pypi.org/project/JarvisPLOT/#history)
59
+ and [GitHub Releases](https://github.com/Pengxuan-Zhu-Phys/Jarvis-PLOT/releases).
60
+ Earlier release notes are archived in Jarvis-Books
61
+ `Docs/archive/Jarvis-PLOT/2026-10-17/docs/release/`.
@@ -0,0 +1,69 @@
1
+ # Native forest examples
2
+
3
+ - `interval.yaml`: generic supplied estimates/bounds, string IDs with leading zeros.
4
+ - `box.yaml`: generic supplied quartiles/whiskers and observations, including a point-only row.
5
+ - `multi-interval.yaml`: two supplied boxes, ten original points per row, three interval classes,
6
+ field-based values, lane offsets, a black common mean ± SD legend key, explicit ticks,
7
+ MathText row/cut labels and a caller-supplied header note.
8
+ - `intervals-only.yaml`: row IDs/labels plus three intervals per row; no primary glyph or scatter source.
9
+ - `real-demo.yaml`: producer-exported generic tables, 97 rows/241 points. This fixture preserves supplied box coordinates, classification and annotations. Producer-specific metadata in CSV is inspectable and never used by the renderer.
10
+
11
+ Run `jplot validate Example/forest/real-demo.yaml --json`, `jplot doctor Example/forest/real-demo.yaml --json`, then `jplot Example/forest/real-demo.yaml --report`. Outputs go to `Workshop/forest_native/`; each native PNG/SVG has a `.layout.json` receipt with shared limits/ticks, physical positions, annotations, styles and verification. Generated images/reports are not package assets.
12
+
13
+ The two multi-interval examples write PNG/PDF and receipts only to
14
+ `/tmp/jarvisplot-forest-examples`. They select the commonly installed DejaVu Sans font;
15
+ the original examples retain the Swiss card's Helvetica default. Run with the official package:
16
+
17
+ ```sh
18
+ jplot validate Example/forest/multi-interval.yaml --json
19
+ jplot doctor Example/forest/multi-interval.yaml --json
20
+ jplot Example/forest/multi-interval.yaml --report
21
+ jplot validate Example/forest/intervals-only.yaml --json
22
+ jplot doctor Example/forest/intervals-only.yaml --json
23
+ jplot Example/forest/intervals-only.yaml --report
24
+ ```
25
+
26
+ `summary-rows.csv` supplies the already formatted box values; `summary-intervals.csv`
27
+ supplies interval endpoints and already formatted mean ± SD values. The examples are
28
+ illustrative supplied data, not a statistical reconstruction from the scatter sample.
29
+ Class names are arbitrary. `interval_fields` can map noncanonical CSV headers without
30
+ renaming files. `glyph_offset_mm` shifts the box and its points together; overlay `offset_mm`
31
+ sets independent interval lanes. A positive `value_column_mm` reserves a right-hand values
32
+ strip; zero keeps the full numerical width and requires room beside every interval.
33
+ Long annotations or marks near a boundary fail explicitly when their measured ink does not fit.
34
+
35
+ `multi-interval.yaml` gives the primary box/points and the three summary intervals equal
36
+ 5 mm halves of the 10 mm mark band. Its plot centre is 7.5 mm, primary offset -2.5 mm,
37
+ and summary offsets 0.85/2.5/4.15 mm. This puts the primary distribution higher and the
38
+ summary group lower with equal allocated vertical space. Legend formulas default to
39
+ STIX; `frame.ax.legend.prop.math_fontfamily: dejavusans` restores the previous look.
40
+ `jplot man legend --json` documents formula and ordinary legend font controls.
41
+ The cut description explicitly sets `description.math: true` and
42
+ `description.math_fontfamily: stix`; legend font settings do not change cut fonts.
43
+
44
+ Use `jplot man forest --json`, `jplot template show forest --json`, and `jplot config expand Example/forest/real-demo.yaml --figure forest-all-97 --json` for discovery/inspection. Config expansion preserves the native high-level type and returns its solved scene in `data.forests`.
45
+
46
+ The real demo declares Bin/W/P/E/n/CV columns. Column names and units appear only at the top; body cells contain values, with n formatted .0f and CV .1f. title/description are standard text blocks. The 20 mm footer has three sections: the glyph sample starts at reference column 2, point classes at column 5, and the unchanged YAML description at column 8. Description wraps in the last five reference columns; the header is now 20 mm. The standard Jarvis-HEP icon stays at bottom left, sharing height with the point column; the full figure is 82.5 x 573.5 mm.
47
+
48
+ Columns use role: row_name/left/right. Bin is the row name; W/P/E form the compact left group; n/CV form the right group. Widths follow actual header/body font metrics, with no manual width declarations. Text sits near the top of each row; the full-width common numerical band below it contains the distributions and observations, extending horizontally beneath both text groups.
49
+
50
+ Swiss style: installed Helvetica regular/bold; 9 pt title; 12 reference columns; compact left-aligned left cells and right-aligned right cells; black, white, Jarvis blue and red #DA291C. Widths follow actual text metrics without grid rounding; default gaps are 0.8 mm. `real-demo-debug.yaml` enables the separate grid/baseline/band overlay. `meta` controls the optional number/year/place.
51
+
52
+ The normal chart shows a shared top numerical axis and continuous vertical grid; row rules/per-row axes are removed. `x.ticks` supplies explicit short marks and top/bottom labels. `forest.grid` independently controls numerical lines and deduplicates coincident coordinates; divisions do not add ticks. `debug.forest_grid` controls the separate design overlay.
53
+
54
+ The default canvas is white, with no row shading, numbered metadata or legend heading. Point legend markers and their labels are left aligned using compact keys.
55
+
56
+ For a study previously using `jarvis_forest_preview`, install the formal project in the same
57
+ Python environment (`python -m pip install -e .` from the Jarvis-PLOT repository root),
58
+ remove its preview path from the shell/launcher PYTHONPATH, and call the formal `jplot` on
59
+ the existing YAML. The native interface accepts the established `intervals`, annotation,
60
+ MathText, header_note and geometry keys; no task-specific names or data conversion are needed.
61
+ For a one-off check use `env -u PYTHONPATH jplot validate <existing.yaml> --json`, followed
62
+ by doctor and rendering in that clean environment. Verify `jplot --version` in that environment.
63
+ To preserve existing study figures during verification, use a temporary YAML with only
64
+ `project.workdir` and `output.dir` redirected to a temporary directory; retain the absolute
65
+ source paths and all Figures/coordinates/statistical strings. Normal image output is governed
66
+ by YAML `output.dir`, not the CLI `-o` flag.
67
+
68
+ AI agents should read `jplot man agent-readme --json` before authoring YAML or reporting a
69
+ missing feature; it includes the installed-version and feature-request feedback requirements.
@@ -0,0 +1,25 @@
1
+ version: '0.3'
2
+ DataSet:
3
+ - name: rows
4
+ path: ./data/box.csv
5
+ type: csv
6
+ - name: observations
7
+ path: ./data/points.csv
8
+ type: csv
9
+ Figures:
10
+ - name: forest-box
11
+ type: forest
12
+ data: rows
13
+ glyph: box
14
+ title:
15
+ text: Generic box comparison
16
+ x:
17
+ label: Supplied coordinates
18
+ reference: 0
19
+ points: observations
20
+ output:
21
+ dir: ../../Workshop/forest_native
22
+ formats:
23
+ - png
24
+ - svg
25
+ dpi: 220
@@ -0,0 +1,3 @@
1
+ row,label,detail,stats,lower,q1,median,q3,upper
2
+ 01,A,Treated,n=3,-2,-1,0,1,2
3
+ 02,B,Control,n=1,,,,,
@@ -0,0 +1,242 @@
1
+ row,id,x,class,source_value
2
+ B001,5082,-6.8649885583523975,normal,740.0
3
+ B001,5083,-6.8649885583523975,normal,740.0
4
+ B001,5087,5.720823798627007,normal,840.0
5
+ B001,5154,-3.0892448512585764,normal,770.0
6
+ B001,5207,0.6864988558352455,normal,800.0
7
+ B001,5208,3.2036613272311265,normal,820.0
8
+ B001,5286,22.082379862700236,outlier,970.0
9
+ B001,5330,-9.382151029748279,normal,720.0
10
+ B001,5366,-11.89931350114416,normal,700.0
11
+ B001,5450,8.237986270022889,normal,860.0
12
+ B001,484,-1.8306636155606357,normal,780.0
13
+ B002,5061,-6.134969325153375,normal,680.0
14
+ B002,5062,6.288343558282207,normal,770.0
15
+ B002,5211,-14.41717791411043,normal,620.0
16
+ B002,5305,-15.79754601226994,normal,610.0
17
+ B002,5447,21.47239263803681,normal,880.0
18
+ B002,5452,-13.036809815950921,normal,630.0
19
+ B002,551,2.1472392638036792,normal,740.0
20
+ B002,524,15.950920245398772,normal,840.0
21
+ B002,554,3.5276073619631885,normal,750.0
22
+ B003,5064,-9.090909090909092,normal,700.0
23
+ B003,5147,-5.194805194805195,normal,730.0
24
+ B003,5297,-3.896103896103896,normal,740.0
25
+ B003,5299,-2.5974025974025974,normal,750.0
26
+ B003,5436,5.194805194805195,normal,810.0
27
+ B003,5449,-5.194805194805195,normal,730.0
28
+ B003,5469,16.883116883116884,normal,900.0
29
+ B003,493,-1.2987012987012987,normal,760.0
30
+ B003,501,5.194805194805195,normal,810.0
31
+ B004,5032,-6.557377049180328,normal,570.0
32
+ B004,5161,-29.508196721311474,normal,430.0
33
+ B004,5167,13.114754098360656,normal,690.0
34
+ B004,5271,-22.950819672131146,normal,470.0
35
+ B004,5461,-3.278688524590164,normal,590.0
36
+ B004,535,22.950819672131146,normal,750.0
37
+ B004,546,29.508196721311474,normal,790.0
38
+ B004,560,-3.278688524590164,normal,590.0
39
+ B005,5094,-1.5384615384615385,normal,880.0
40
+ B005,5111,6.293706293706293,normal,950.0
41
+ B005,5178,17.482517482517483,outlier,1050.0
42
+ B005,5235,0.6993006993006993,normal,900.0
43
+ B005,5279,-11.608391608391608,normal,790.0
44
+ B005,5290,-1.5384615384615385,normal,880.0
45
+ B005,5326,-6.013986013986014,normal,840.0
46
+ B005,5451,-3.7762237762237763,normal,860.0
47
+ B006,5092,-22.693997071742313,normal,660.0
48
+ B006,5101,-16.837481698389457,normal,710.0
49
+ B006,5195,7.759882869692533,normal,920.0
50
+ B006,5219,7.759882869692533,normal,920.0
51
+ B006,5368,0.7320644216691069,normal,860.0
52
+ B006,5384,18.301610541727673,normal,1010.0
53
+ B006,5423,-2.781844802342606,normal,830.0
54
+ B006,568,7.759882869692533,normal,920.0
55
+ B007,5069,-18.620689655172413,normal,590.0
56
+ B007,5090,3.4482758620689653,normal,750.0
57
+ B007,5127,18.620689655172413,normal,860.0
58
+ B007,5310,-11.724137931034482,normal,640.0
59
+ B007,491,8.96551724137931,normal,790.0
60
+ B007,562,-0.6896551724137931,normal,720.0
61
+ B008,5033,-2.9585798816568047,normal,820.0
62
+ B008,5038,6.508875739644971,normal,900.0
63
+ B008,5150,0.591715976331361,normal,850.0
64
+ B008,5173,-1.7751479289940828,normal,830.0
65
+ B008,5378,-11.242603550295858,normal,750.0
66
+ B008,5419,8.875739644970414,normal,920.0
67
+ B009,5011,2.6737967914438503,normal,960.0
68
+ B009,5100,0.5347593582887701,normal,940.0
69
+ B009,5477,3.7433155080213902,normal,970.0
70
+ B009,5515,0.5347593582887701,normal,940.0
71
+ B009,5531,-9.090909090909092,outlier,850.0
72
+ B009,485,1.6042780748663101,normal,950.0
73
+ B010,468,11.688311688311689,unrated,860.0
74
+ B010,525,-16.883116883116884,unrated,640.0
75
+ B010,541,16.883116883116884,unrated,900.0
76
+ B010,545,-1.2987012987012987,unrated,760.0
77
+ B010,547,-10.38961038961039,unrated,690.0
78
+ B011,5025,-6.947890818858561,unrated,750.0
79
+ B011,5133,-13.15136476426799,unrated,700.0
80
+ B011,5209,2.977667493796526,unrated,830.0
81
+ B011,5248,9.181141439205955,unrated,880.0
82
+ B011,5492,7.94044665012407,unrated,870.0
83
+ B012,5109,17.045454545454547,unrated,1030.0
84
+ B012,5229,-28.40909090909091,unrated,630.0
85
+ B012,5325,11.363636363636363,unrated,980.0
86
+ B012,5358,1.1363636363636365,unrated,890.0
87
+ B012,490,-1.1363636363636365,unrated,870.0
88
+ B013,5055,-9.637471839826445,unrated,820.0
89
+ B013,5139,-1.9235974846896788,unrated,890.0
90
+ B013,5193,16.810097377785326,unrated,1060.0
91
+ B013,5204,-8.53548978909262,unrated,830.0
92
+ B013,5353,3.286461735823407,unrated,937.2789844176104
93
+ B014,5174,-1.3015184381778742,unrated,910.0
94
+ B014,5228,-15.401301518438178,unrated,780.0
95
+ B014,5239,8.459869848156183,unrated,1000.0
96
+ B014,5240,6.290672451193059,unrated,980.0
97
+ B014,477,1.9522776572668112,unrated,940.0
98
+ B015,5170,-7.462686567164179,unrated,620.0
99
+ B015,5343,5.970149253731344,unrated,710.0
100
+ B015,5486,-2.985074626865672,unrated,650.0
101
+ B015,569,4.477611940298507,unrated,700.0
102
+ B016,5051,-20.0375529514398,unrated,600.0
103
+ B016,5261,22.79685023165795,unrated,921.4088970320151
104
+ B016,5357,-4.045063541727761,unrated,720.0
105
+ B016,5399,1.2857662615095853,unrated,760.0
106
+ B017,5081,1.2987012987012987,unrated,780.0
107
+ B017,5333,12.987012987012987,unrated,870.0
108
+ B017,5427,-7.792207792207792,unrated,710.0
109
+ B017,5467,-6.4935064935064934,unrated,720.0
110
+ B018,5349,-9.26517571884984,unrated,710.0
111
+ B018,5388,-5.431309904153355,unrated,740.0
112
+ B018,5433,7.348242811501597,unrated,840.0
113
+ B018,531,7.348242811501597,unrated,840.0
114
+ B019,5171,-12.994350282485875,unrated,770.0
115
+ B019,5222,0.5649717514124294,unrated,890.0
116
+ B019,5259,12.994350282485875,unrated,1000.0
117
+ B019,5283,-0.5649717514124294,unrated,880.0
118
+ B020,5166,-1.2594458438287153,unrated,980.0
119
+ B020,5181,-4.282115869017632,unrated,950.0
120
+ B020,5187,9.82367758186398,unrated,1090.0
121
+ B020,5238,-4.282115869017632,unrated,950.0
122
+ B021,5096,2.3017902813299234,unrated,1000.0
123
+ B021,5227,8.439897698209718,unrated,1060.0
124
+ B021,5237,-2.813299232736573,unrated,950.0
125
+ B021,5410,-7.928388746803069,unrated,900.0
126
+ B022,521,9.879518072289157,unrated,1140.0
127
+ B022,529,-13.25301204819277,unrated,900.0
128
+ B022,539,10.843373493975903,unrated,1150.0
129
+ B022,511,-7.469879518072289,unrated,960.0
130
+ B023,5060,-10.550458715596324,unrated,650.0
131
+ B023,5389,5.963302752293584,unrated,770.0
132
+ B023,5503,4.587155963302758,unrated,760.0
133
+ B024,5186,-9.163346613545812,unrated,760.0
134
+ B024,5199,8.76494023904383,unrated,910.0
135
+ B024,5394,0.39840637450199656,unrated,840.0
136
+ B025,5130,2.2727272727272676,unrated,750.0
137
+ B025,5478,-3.181818181818187,unrated,710.0
138
+ B025,5550,0.9090909090909038,unrated,740.0
139
+ B026,5132,-7.112970711297066,unrated,740.0
140
+ B026,5189,10.46025104602511,unrated,880.0
141
+ B026,5328,-3.347280334728029,unrated,770.0
142
+ B027,5141,2.491103202846979,unrated,960.0
143
+ B027,5168,-1.7793594306049783,unrated,920.0
144
+ B027,5266,-0.7117437722419888,unrated,930.0
145
+ B028,5256,-2.702702702702707,unrated,840.0
146
+ B028,5430,-0.3861003861003905,unrated,860.0
147
+ B028,5660,3.0888030888030844,unrated,890.0
148
+ B029,5197,11.188811188811185,unrated,1060.0
149
+ B029,5262,-5.594405594405599,unrated,900.0
150
+ B029,5470,-5.594405594405599,unrated,900.0
151
+ B030,5203,-16.853932584269664,unrated,740.0
152
+ B030,5232,7.865168539325842,unrated,960.0
153
+ B030,5466,8.98876404494382,unrated,970.0
154
+ B031,5272,8.256880733944953,unrated,1180.0
155
+ B031,473,1.834862385321101,unrated,1110.0
156
+ B031,591,-10.091743119266056,unrated,980.0
157
+ B032,5172,9.634551495016607,unrated,1100.0
158
+ B032,5253,-5.315614617940203,unrated,950.0
159
+ B032,5500,-4.318936877076416,unrated,960.0
160
+ B033,5327,8.45481049562683,unrated,1240.0
161
+ B033,474,-4.664723032069965,unrated,1090.0
162
+ B033,500,-3.790087463556845,unrated,1100.0
163
+ B034,536,5.128205128205129,unrated,820.0
164
+ B034,555,-5.128205128205129,unrated,740.0
165
+ B035,5138,-5.084745762711864,unrated,560.0
166
+ B035,5225,5.084745762711864,unrated,620.0
167
+ B036,5097,-3.4482758620689653,unrated,560.0
168
+ B036,5441,3.4482758620689653,unrated,600.0
169
+ B037,5058,-8.771929824561404,unrated,520.0
170
+ B037,5110,8.771929824561404,unrated,620.0
171
+ B038,5401,1.2820512820512822,unrated,790.0
172
+ B038,585,-1.2820512820512822,unrated,770.0
173
+ B039,5180,4.225352112676056,unrated,740.0
174
+ B039,5308,-4.225352112676056,unrated,680.0
175
+ B040,5084,10.416666666666666,unrated,1060.0
176
+ B040,5316,-10.416666666666666,unrated,860.0
177
+ B041,5404,1.0869565217391304,unrated,930.0
178
+ B041,5517,-1.0869565217391304,unrated,910.0
179
+ B042,5128,-1.8867924528301887,unrated,780.0
180
+ B042,5214,1.8867924528301887,unrated,810.0
181
+ B043,5134,-8.0,unrated,920.0
182
+ B043,550,8.0,unrated,1080.0
183
+ B044,5440,8.085106382978724,unrated,1270.0
184
+ B044,519,-8.085106382978724,unrated,1080.0
185
+ B045,5089,-5.333333333333333,unrated,710.0
186
+ B045,5428,5.333333333333333,unrated,790.0
187
+ B046,5196,4.25531914893617,unrated,980.0
188
+ B046,5220,-4.25531914893617,unrated,900.0
189
+ B047,502,2.0202020202020203,unrated,1010.0
190
+ B047,512,-2.0202020202020203,unrated,970.0
191
+ B048,515,6.315789473684211,unrated,1010.0
192
+ B048,518,-6.315789473684211,unrated,890.0
193
+ B049,5379,2.830188679245283,unrated,1090.0
194
+ B049,472,-2.830188679245283,unrated,1030.0
195
+ B050,465,0.0,singleton,580.0
196
+ B051,553,0.0,singleton,650.0
197
+ B052,5370,0.0,singleton,510.0
198
+ B053,565,0.0,singleton,720.0
199
+ B054,5493,0.0,singleton,630.0
200
+ B055,5265,0.0,singleton,700.0
201
+ B056,5148,0.0,singleton,530.0
202
+ B057,5103,0.0,singleton,630.0
203
+ B058,5530,0.0,singleton,650.0
204
+ B059,5291,0.0,singleton,750.0
205
+ B060,5231,0.0,singleton,680.0
206
+ B061,5439,0.0,singleton,760.0
207
+ B062,5071,0.0,singleton,773.543758830446
208
+ B063,5009,0.0,singleton,441.5759247750045
209
+ B064,5104,0.0,singleton,820.0
210
+ B065,5215,0.0,singleton,670.0
211
+ B066,5163,0.0,singleton,700.0
212
+ B067,471,0.0,singleton,850.0
213
+ B068,583,0.0,singleton,950.0
214
+ B069,5387,0.0,singleton,810.0
215
+ B070,572,0.0,singleton,780.0
216
+ B071,5257,0.0,singleton,740.0
217
+ B072,522,0.0,singleton,810.0
218
+ B073,592,0.0,singleton,960.0
219
+ B074,5184,0.0,singleton,850.0
220
+ B075,5216,0.0,singleton,900.0
221
+ B076,574,0.0,singleton,880.0
222
+ B077,5429,0.0,singleton,701.2549765309261
223
+ B078,5123,0.0,singleton,820.0
224
+ B079,5088,0.0,singleton,830.0
225
+ B080,578,0.0,singleton,810.0
226
+ B081,579,0.0,singleton,970.0
227
+ B082,573,0.0,singleton,1090.0
228
+ B083,5245,0.0,singleton,907.3383471852242
229
+ B084,480,0.0,singleton,930.0
230
+ B085,5282,0.0,singleton,870.0
231
+ B086,5136,0.0,singleton,860.0
232
+ B087,5247,0.0,singleton,880.0
233
+ B088,575,0.0,singleton,880.0
234
+ B089,537,0.0,singleton,1150.0
235
+ B090,5050,0.0,singleton,980.0
236
+ B091,5223,0.0,singleton,900.0
237
+ B092,489,0.0,singleton,990.0
238
+ B093,5285,0.0,singleton,780.0
239
+ B094,571,0.0,singleton,1290.0
240
+ B095,5042,0.0,singleton,1228.4976127923678
241
+ B096,497,0.0,singleton,990.0
242
+ B097,476,0.0,singleton,1160.0
@@ -0,0 +1,98 @@
1
+ row,label,detail,stats,estimate,lower,q1,median,q3,upper,n,cv,W,P,E,target,cell,raw_mean
2
+ B001,B001,"W[160,170) P[16,24) E[70,80)",n 11 CV 9.7%,0,-11.89931350114416,-6.8649885583523975,-1.8306636155606357,4.462242562929067,8.237986270022889,11,9.673302374472604,"[160, 170)","[16, 24)","[70, 80)",y16,"[160, 170) | [16, 24) | [70, 80)",794.5454545454545
3
+ B002,B002,"W[140,150) P[8,16) E[60,70)",n 9 CV 13.4%,0,-15.79754601226994,-13.036809815950921,2.1472392638036792,6.288343558282207,21.47239263803681,9,13.402924843830837,"[140, 150)","[8, 16)","[60, 70)",y16,"[140, 150) | [8, 16) | [60, 70)",724.4444444444445
4
+ B003,B003,"W[150,160) P[8,16) E[70,80)",n 9 CV 7.9%,0,-9.090909090909092,-5.194805194805195,-2.5974025974025974,5.194805194805195,16.883116883116884,9,7.899691597789896,"[150, 160)","[8, 16)","[70, 80)",y16,"[150, 160) | [8, 16) | [70, 80)",770.0
5
+ B004,B004,"W[120,130) P[8,16) E[50,60)",n 8 CV 20.8%,0,-29.508196721311474,-10.655737704918032,-3.278688524590164,15.573770491803279,29.508196721311474,8,20.810173200489984,"[120, 130)","[8, 16)","[50, 60)",y16,"[120, 130) | [8, 16) | [50, 60)",610.0
6
+ B005,B005,"W[160,170) P[16,24) E[60,70)",n 8 CV 8.7%,0,-11.608391608391608,-4.335664335664336,-1.5384615384615385,2.097902097902098,6.293706293706293,8,8.747689941880779,"[160, 170)","[16, 24)","[60, 70)",y16,"[160, 170) | [16, 24) | [60, 70)",893.75
7
+ B006,B006,"W[170,180) P[16,24) E[70,80)",n 8 CV 13.7%,0,-22.693997071742313,-6.295754026354318,4.24597364568082,7.759882869692533,18.301610541727673,8,13.744553034008797,"[170, 180)","[16, 24)","[70, 80)",y16,"[170, 180) | [16, 24) | [70, 80)",853.75
8
+ B007,B007,"W[150,160) P[16,24) E[60,70)",n 6 CV 13.6%,0,-18.620689655172413,-8.96551724137931,1.3793103448275863,7.586206896551723,18.620689655172413,6,13.59163203428967,"[150, 160)","[16, 24)","[60, 70)",y16,"[150, 160) | [16, 24) | [60, 70)",725.0
9
+ B008,B008,"W[160,170) P[8,16) E[60,70)",n 6 CV 7.2%,0,-11.242603550295858,-2.662721893491124,-0.591715976331361,5.029585798816568,8.875739644970414,6,7.208256725605236,"[160, 170)","[8, 16)","[60, 70)",y16,"[160, 170) | [8, 16) | [60, 70)",845.0
10
+ B009,B009,"W[170,180) P[16,24) E[80,90)",n 6 CV 4.6%,0,0.5347593582887701,0.5347593582887701,1.0695187165775402,2.406417112299465,3.7433155080213902,6,4.624972900628802,"[170, 180)","[16, 24)","[80, 90)",y16,"[170, 180) | [16, 24) | [80, 90)",935.0
11
+ B010,B010,"W[120,130) P[8,16) E[60,70)",n 5 CV 14.3%,0,,,,,,5,14.285714285714286,"[120, 130)","[8, 16)","[60, 70)",y16,"[120, 130) | [8, 16) | [60, 70)",770.0
12
+ B011,B011,"W[160,170) P[8,16) E[70,80)",n 5 CV 9.7%,0,,,,,,5,9.713935052636915,"[160, 170)","[8, 16)","[70, 80)",y16,"[160, 170) | [8, 16) | [70, 80)",806.0
13
+ B012,B012,"W[170,180) P[8,16) E[70,80)",n 5 CV 17.5%,0,,,,,,5,17.53096434152445,"[170, 180)","[8, 16)","[70, 80)",y16,"[170, 180) | [8, 16) | [70, 80)",880.0
14
+ B013,B013,"W[180,190) P[8,16) E[70,80)",n 5 CV 10.8%,0,,,,,,5,10.756578002296004,"[180, 190)","[8, 16)","[70, 80)",y16,"[180, 190) | [8, 16) | [70, 80)",907.4557968835221
15
+ B014,B014,"W[190,200) P[16,24) E[80,90)",n 5 CV 9.4%,0,,,,,,5,9.405415786845467,"[190, 200)","[16, 24)","[80, 90)",y16,"[190, 200) | [16, 24) | [80, 90)",922.0
16
+ B015,B015,"W[130,140) P[8,16) E[60,70)",n 4 CV 6.3%,0,,,,,,4,6.332299533013858,"[130, 140)","[8, 16)","[60, 70)",y16,"[130, 140) | [8, 16) | [60, 70)",670.0
17
+ B016,B016,"W[150,160) P[16,24) E[50,60)",n 4 CV 17.7%,0,,,,,,4,17.69383737069914,"[150, 160)","[16, 24)","[50, 60)",y16,"[150, 160) | [16, 24) | [50, 60)",750.3522242580038
18
+ B017,B017,"W[150,160) P[8,16) E[60,70)",n 4 CV 9.5%,0,,,,,,4,9.543466530324071,"[150, 160)","[8, 16)","[60, 70)",y16,"[150, 160) | [8, 16) | [60, 70)",770.0
19
+ B018,B018,"W[150,160) P[8,16) E[80,90)",n 4 CV 8.6%,0,,,,,,4,8.628170010875014,"[150, 160)","[8, 16)","[80, 90)",y16,"[150, 160) | [8, 16) | [80, 90)",782.5
20
+ B019,B019,"W[170,180) P[16,24) E[60,70)",n 4 CV 10.6%,0,,,,,,4,10.61986604886756,"[170, 180)","[16, 24)","[60, 70)",y16,"[170, 180) | [16, 24) | [60, 70)",885.0
21
+ B020,B020,"W[180,190) P[8,16) E[80,90)",n 4 CV 6.7%,0,,,,,,4,6.702334859269557,"[180, 190)","[8, 16)","[80, 90)",y16,"[180, 190) | [8, 16) | [80, 90)",992.5
22
+ B021,B021,"W[190,200) P[16,24) E[70,80)",n 4 CV 7.0%,0,,,,,,4,7.007237029167781,"[190, 200)","[16, 24)","[70, 80)",y16,"[190, 200) | [16, 24) | [70, 80)",977.5
23
+ B022,B022,"W[200,210) P[8,16) E[110,120)",n 4 CV 12.2%,0,,,,,,4,12.201435085467145,"[200, 210)","[8, 16)","[110, 120)",y16,"[200, 210) | [8, 16) | [110, 120)",1037.5
24
+ B023,B023,"W[140,150) P[8,16) E[50,60)",n 3 CV 9.2%,0,,,,,,3,9.162836860292744,"[140, 150)","[8, 16)","[50, 60)",y16,"[140, 150) | [8, 16) | [50, 60)",726.6666666666666
25
+ B024,B024,"W[150,160) P[16,24) E[80,90)",n 3 CV 9.0%,0,,,,,,3,8.97078107505793,"[150, 160)","[16, 24)","[80, 90)",y16,"[150, 160) | [16, 24) | [80, 90)",836.6666666666666
26
+ B025,B025,"W[150,160) P[8,16) E[50,60)",n 3 CV 2.8%,0,,,,,,3,2.8386354538174534,"[150, 160)","[8, 16)","[50, 60)",y16,"[150, 160) | [8, 16) | [50, 60)",733.3333333333334
27
+ B026,B026,"W[160,170) P[16,24) E[80,90)",n 3 CV 9.3%,0,,,,,,3,9.25244535041673,"[160, 170)","[16, 24)","[80, 90)",y16,"[160, 170) | [16, 24) | [80, 90)",796.6666666666666
28
+ B027,B027,"W[160,170) P[8,16) E[50,60)",n 3 CV 2.2%,0,,,,,,3,2.2224192165118857,"[160, 170)","[8, 16)","[50, 60)",y16,"[160, 170) | [8, 16) | [50, 60)",936.6666666666666
29
+ B028,B028,"W[170,180) P[8,16) E[60,70)",n 3 CV 2.9%,0,,,,,,3,2.9149939904520266,"[170, 180)","[8, 16)","[60, 70)",y16,"[170, 180) | [8, 16) | [60, 70)",863.3333333333334
30
+ B029,B029,"W[170,180) P[8,16) E[90,100)",n 3 CV 9.7%,0,,,,,,3,9.689794727658056,"[170, 180)","[8, 16)","[90, 100)",y16,"[170, 180) | [8, 16) | [90, 100)",953.3333333333334
31
+ B030,B030,"W[180,190) P[16,24) E[60,70)",n 3 CV 14.6%,0,,,,,,3,14.606741573033707,"[180, 190)","[16, 24)","[60, 70)",y16,"[180, 190) | [16, 24) | [60, 70)",890.0
32
+ B031,B031,"W[190,200) P[8,16) E[100,110)",n 3 CV 9.3%,0,,,,,,3,9.310909692745154,"[190, 200)","[8, 16)","[100, 110)",y16,"[190, 200) | [8, 16) | [100, 110)",1090.0
33
+ B032,B032,"W[190,200) P[8,16) E[80,90)",n 3 CV 8.4%,0,,,,,,3,8.358634967049253,"[190, 200)","[8, 16)","[80, 90)",y16,"[190, 200) | [8, 16) | [80, 90)",1003.3333333333334
34
+ B033,B033,"W[210,220) P[8,16) E[100,110)",n 3 CV 7.3%,0,,,,,,3,7.335128644553427,"[210, 220)","[8, 16)","[100, 110)",y16,"[210, 220) | [8, 16) | [100, 110)",1143.3333333333333
35
+ B034,B034,"W[110,120) P[8,16) E[60,70)",n 2 CV 7.3%,0,,,,,,2,7.252377242938949,"[110, 120)","[8, 16)","[60, 70)",y16,"[110, 120) | [8, 16) | [60, 70)",780.0
36
+ B035,B035,"W[120,130) P[8,16) E[40,50)",n 2 CV 7.2%,0,,,,,,2,7.190916418846245,"[120, 130)","[8, 16)","[40, 50)",y16,"[120, 130) | [8, 16) | [40, 50)",590.0
37
+ B036,B036,"W[130,140) P[16,24) E[60,70)",n 2 CV 4.9%,0,,,,,,2,4.876598490941707,"[130, 140)","[16, 24)","[60, 70)",y16,"[130, 140) | [16, 24) | [60, 70)",580.0
38
+ B037,B037,"W[130,140) P[8,16) E[50,60)",n 2 CV 12.4%,0,,,,,,2,12.405382126079783,"[130, 140)","[8, 16)","[50, 60)",y16,"[130, 140) | [8, 16) | [50, 60)",570.0
39
+ B038,B038,"W[140,150) P[16,24) E[70,80)",n 2 CV 1.8%,0,,,,,,2,1.8130943107347373,"[140, 150)","[16, 24)","[70, 80)",y16,"[140, 150) | [16, 24) | [70, 80)",780.0
40
+ B039,B039,"W[140,150) P[8,16) E[70,80)",n 2 CV 6.0%,0,,,,,,2,5.975550263548288,"[140, 150)","[8, 16)","[70, 80)",y16,"[140, 150) | [8, 16) | [70, 80)",710.0
41
+ B040,B040,"W[160,170) P[0,8) E[60,70)",n 2 CV 14.7%,0,,,,,,2,14.731391274719742,"[160, 170)","[0, 8)","[60, 70)",y16,"[160, 170) | [0, 8) | [60, 70)",960.0
42
+ B041,B041,"W[160,170) P[8,16) E[90,100)",n 2 CV 1.5%,0,,,,,,2,1.5371886547533642,"[160, 170)","[8, 16)","[90, 100)",y16,"[160, 170) | [8, 16) | [90, 100)",920.0
43
+ B042,B042,"W[170,180) P[24,32) E[60,70)",n 2 CV 2.7%,0,,,,,,2,2.668327476175651,"[170, 180)","[24, 32)","[60, 70)",y16,"[170, 180) | [24, 32) | [60, 70)",795.0
44
+ B043,B043,"W[170,180) P[8,16) E[80,90)",n 2 CV 11.3%,0,,,,,,2,11.313708498984761,"[170, 180)","[8, 16)","[80, 90)",y16,"[170, 180) | [8, 16) | [80, 90)",1000.0
45
+ B044,B044,"W[180,190) P[0,8) E[90,100)",n 2 CV 11.4%,0,,,,,,2,11.43406710003779,"[180, 190)","[0, 8)","[90, 100)",y16,"[180, 190) | [0, 8) | [90, 100)",1175.0
46
+ B045,B045,"W[180,190) P[24,32) E[60,70)",n 2 CV 7.5%,0,,,,,,2,7.542472332656507,"[180, 190)","[24, 32)","[60, 70)",y16,"[180, 190) | [24, 32) | [60, 70)",750.0
47
+ B046,B046,"W[180,190) P[24,32) E[70,80)",n 2 CV 6.0%,0,,,,,,2,6.017930052651469,"[180, 190)","[24, 32)","[70, 80)",y16,"[180, 190) | [24, 32) | [70, 80)",940.0
48
+ B047,B047,"W[180,190) P[8,16) E[100,110)",n 2 CV 2.9%,0,,,,,,2,2.8569970957032225,"[180, 190)","[8, 16)","[100, 110)",y16,"[180, 190) | [8, 16) | [100, 110)",990.0
49
+ B048,B048,"W[180,190) P[8,16) E[90,100)",n 2 CV 8.9%,0,,,,,,2,8.931875130777442,"[180, 190)","[8, 16)","[90, 100)",y16,"[180, 190) | [8, 16) | [90, 100)",950.0
50
+ B049,B049,"W[190,200) P[8,16) E[90,100)",n 2 CV 4.0%,0,,,,,,2,4.002491214263476,"[190, 200)","[8, 16)","[90, 100)",y16,"[190, 200) | [8, 16) | [90, 100)",1060.0
51
+ B050,B050,"W[100,110) P[0,8) E[40,50)",n 1 CV —,0,,,,,,1,,"[100, 110)","[0, 8)","[40, 50)",y16,"[100, 110) | [0, 8) | [40, 50)",580.0
52
+ B051,B051,"W[100,110) P[8,16) E[50,60)",n 1 CV —,0,,,,,,1,,"[100, 110)","[8, 16)","[50, 60)",y16,"[100, 110) | [8, 16) | [50, 60)",650.0
53
+ B052,B052,"W[110,120) P[0,8) E[40,50)",n 1 CV —,0,,,,,,1,,"[110, 120)","[0, 8)","[40, 50)",y16,"[110, 120) | [0, 8) | [40, 50)",510.0
54
+ B053,B053,"W[110,120) P[8,16) E[40,50)",n 1 CV —,0,,,,,,1,,"[110, 120)","[8, 16)","[40, 50)",y16,"[110, 120) | [8, 16) | [40, 50)",720.0
55
+ B054,B054,"W[120,130) P[0,8) E[50,60)",n 1 CV —,0,,,,,,1,,"[120, 130)","[0, 8)","[50, 60)",y16,"[120, 130) | [0, 8) | [50, 60)",630.0
56
+ B055,B055,"W[120,130) P[16,24) E[50,60)",n 1 CV —,0,,,,,,1,,"[120, 130)","[16, 24)","[50, 60)",y16,"[120, 130) | [16, 24) | [50, 60)",700.0
57
+ B056,B056,"W[130,140) P[0,8) E[60,70)",n 1 CV —,0,,,,,,1,,"[130, 140)","[0, 8)","[60, 70)",y16,"[130, 140) | [0, 8) | [60, 70)",530.0
58
+ B057,B057,"W[130,140) P[8,16) E[40,50)",n 1 CV —,0,,,,,,1,,"[130, 140)","[8, 16)","[40, 50)",y16,"[130, 140) | [8, 16) | [40, 50)",630.0
59
+ B058,B058,"W[130,140) P[8,16) E[70,80)",n 1 CV —,0,,,,,,1,,"[130, 140)","[8, 16)","[70, 80)",y16,"[130, 140) | [8, 16) | [70, 80)",650.0
60
+ B059,B059,"W[140,150) P[16,24) E[60,70)",n 1 CV —,0,,,,,,1,,"[140, 150)","[16, 24)","[60, 70)",y16,"[140, 150) | [16, 24) | [60, 70)",750.0
61
+ B060,B060,"W[140,150) P[8,16) E[80,90)",n 1 CV —,0,,,,,,1,,"[140, 150)","[8, 16)","[80, 90)",y16,"[140, 150) | [8, 16) | [80, 90)",680.0
62
+ B061,B061,"W[150,160) P[0,8) E[60,70)",n 1 CV —,0,,,,,,1,,"[150, 160)","[0, 8)","[60, 70)",y16,"[150, 160) | [0, 8) | [60, 70)",760.0
63
+ B062,B062,"W[150,160) P[0,8) E[70,80)",n 1 CV —,0,,,,,,1,,"[150, 160)","[0, 8)","[70, 80)",y16,"[150, 160) | [0, 8) | [70, 80)",773.543758830446
64
+ B063,B063,"W[150,160) P[0,8) E[80,90)",n 1 CV —,0,,,,,,1,,"[150, 160)","[0, 8)","[80, 90)",y16,"[150, 160) | [0, 8) | [80, 90)",441.5759247750045
65
+ B064,B064,"W[150,160) P[16,24) E[70,80)",n 1 CV —,0,,,,,,1,,"[150, 160)","[16, 24)","[70, 80)",y16,"[150, 160) | [16, 24) | [70, 80)",820.0
66
+ B065,B065,"W[150,160) P[24,32) E[50,60)",n 1 CV —,0,,,,,,1,,"[150, 160)","[24, 32)","[50, 60)",y16,"[150, 160) | [24, 32) | [50, 60)",670.0
67
+ B066,B066,"W[150,160) P[24,32) E[60,70)",n 1 CV —,0,,,,,,1,,"[150, 160)","[24, 32)","[60, 70)",y16,"[150, 160) | [24, 32) | [60, 70)",700.0
68
+ B067,B067,"W[150,160) P[8,16) E[100,110)",n 1 CV —,0,,,,,,1,,"[150, 160)","[8, 16)","[100, 110)",y16,"[150, 160) | [8, 16) | [100, 110)",850.0
69
+ B068,B068,"W[160,170) P[0,8) E[100,110)",n 1 CV —,0,,,,,,1,,"[160, 170)","[0, 8)","[100, 110)",y16,"[160, 170) | [0, 8) | [100, 110)",950.0
70
+ B069,B069,"W[160,170) P[16,24) E[50,60)",n 1 CV —,0,,,,,,1,,"[160, 170)","[16, 24)","[50, 60)",y16,"[160, 170) | [16, 24) | [50, 60)",810.0
71
+ B070,B070,"W[160,170) P[16,24) E[90,100)",n 1 CV —,0,,,,,,1,,"[160, 170)","[16, 24)","[90, 100)",y16,"[160, 170) | [16, 24) | [90, 100)",780.0
72
+ B071,B071,"W[160,170) P[24,32) E[50,60)",n 1 CV —,0,,,,,,1,,"[160, 170)","[24, 32)","[50, 60)",y16,"[160, 170) | [24, 32) | [50, 60)",740.0
73
+ B072,B072,"W[160,170) P[24,32) E[70,80)",n 1 CV —,0,,,,,,1,,"[160, 170)","[24, 32)","[70, 80)",y16,"[160, 170) | [24, 32) | [70, 80)",810.0
74
+ B073,B073,"W[160,170) P[8,16) E[100,110)",n 1 CV —,0,,,,,,1,,"[160, 170)","[8, 16)","[100, 110)",y16,"[160, 170) | [8, 16) | [100, 110)",960.0
75
+ B074,B074,"W[170,180) P[0,8) E[100,110)",n 1 CV —,0,,,,,,1,,"[170, 180)","[0, 8)","[100, 110)",y16,"[170, 180) | [0, 8) | [100, 110)",850.0
76
+ B075,B075,"W[170,180) P[16,24) E[50,60)",n 1 CV —,0,,,,,,1,,"[170, 180)","[16, 24)","[50, 60)",y16,"[170, 180) | [16, 24) | [50, 60)",900.0
77
+ B076,B076,"W[170,180) P[16,24) E[90,100)",n 1 CV —,0,,,,,,1,,"[170, 180)","[16, 24)","[90, 100)",y16,"[170, 180) | [16, 24) | [90, 100)",880.0
78
+ B077,B077,"W[170,180) P[24,32) E[70,80)",n 1 CV —,0,,,,,,1,,"[170, 180)","[24, 32)","[70, 80)",y16,"[170, 180) | [24, 32) | [70, 80)",701.2549765309261
79
+ B078,B078,"W[170,180) P[24,32) E[80,90)",n 1 CV —,0,,,,,,1,,"[170, 180)","[24, 32)","[80, 90)",y16,"[170, 180) | [24, 32) | [80, 90)",820.0
80
+ B079,B079,"W[170,180) P[32,40] E[60,70)",n 1 CV —,0,,,,,,1,,"[170, 180)","[32, 40]","[60, 70)",y16,"[170, 180) | [32, 40] | [60, 70)",830.0
81
+ B080,B080,"W[170,180) P[8,16) E[100,110)",n 1 CV —,0,,,,,,1,,"[170, 180)","[8, 16)","[100, 110)",y16,"[170, 180) | [8, 16) | [100, 110)",810.0
82
+ B081,B081,"W[170,180) P[8,16) E[110,120)",n 1 CV —,0,,,,,,1,,"[170, 180)","[8, 16)","[110, 120)",y16,"[170, 180) | [8, 16) | [110, 120)",970.0
83
+ B082,B082,"W[180,190) P[16,24) E[100,110)",n 1 CV —,0,,,,,,1,,"[180, 190)","[16, 24)","[100, 110)",y16,"[180, 190) | [16, 24) | [100, 110)",1090.0
84
+ B083,B083,"W[180,190) P[16,24) E[70,80)",n 1 CV —,0,,,,,,1,,"[180, 190)","[16, 24)","[70, 80)",y16,"[180, 190) | [16, 24) | [70, 80)",907.3383471852242
85
+ B084,B084,"W[180,190) P[16,24) E[80,90)",n 1 CV —,0,,,,,,1,,"[180, 190)","[16, 24)","[80, 90)",y16,"[180, 190) | [16, 24) | [80, 90)",930.0
86
+ B085,B085,"W[180,190) P[32,40] E[70,80)",n 1 CV —,0,,,,,,1,,"[180, 190)","[32, 40]","[70, 80)",y16,"[180, 190) | [32, 40] | [70, 80)",870.0
87
+ B086,B086,"W[180,190) P[8,16) E[50,60)",n 1 CV —,0,,,,,,1,,"[180, 190)","[8, 16)","[50, 60)",y16,"[180, 190) | [8, 16) | [50, 60)",860.0
88
+ B087,B087,"W[180,190) P[8,16) E[60,70)",n 1 CV —,0,,,,,,1,,"[180, 190)","[8, 16)","[60, 70)",y16,"[180, 190) | [8, 16) | [60, 70)",880.0
89
+ B088,B088,"W[190,200) P[16,24) E[100,110)",n 1 CV —,0,,,,,,1,,"[190, 200)","[16, 24)","[100, 110)",y16,"[190, 200) | [16, 24) | [100, 110)",880.0
90
+ B089,B089,"W[190,200) P[16,24) E[110,120)",n 1 CV —,0,,,,,,1,,"[190, 200)","[16, 24)","[110, 120)",y16,"[190, 200) | [16, 24) | [110, 120)",1150.0
91
+ B090,B090,"W[190,200) P[16,24) E[90,100)",n 1 CV —,0,,,,,,1,,"[190, 200)","[16, 24)","[90, 100)",y16,"[190, 200) | [16, 24) | [90, 100)",980.0
92
+ B091,B091,"W[190,200) P[24,32) E[80,90)",n 1 CV —,0,,,,,,1,,"[190, 200)","[24, 32)","[80, 90)",y16,"[190, 200) | [24, 32) | [80, 90)",900.0
93
+ B092,B092,"W[190,200) P[8,16) E[120,130]",n 1 CV —,0,,,,,,1,,"[190, 200)","[8, 16)","[120, 130]",y16,"[190, 200) | [8, 16) | [120, 130]",990.0
94
+ B093,B093,"W[190,200) P[8,16) E[70,80)",n 1 CV —,0,,,,,,1,,"[190, 200)","[8, 16)","[70, 80)",y16,"[190, 200) | [8, 16) | [70, 80)",780.0
95
+ B094,B094,"W[200,210) P[0,8) E[110,120)",n 1 CV —,0,,,,,,1,,"[200, 210)","[0, 8)","[110, 120)",y16,"[200, 210) | [0, 8) | [110, 120)",1290.0
96
+ B095,B095,"W[200,210) P[16,24) E[80,90)",n 1 CV —,0,,,,,,1,,"[200, 210)","[16, 24)","[80, 90)",y16,"[200, 210) | [16, 24) | [80, 90)",1228.4976127923678
97
+ B096,B096,"W[200,210) P[8,16) E[100,110)",n 1 CV —,0,,,,,,1,,"[200, 210)","[8, 16)","[100, 110)",y16,"[200, 210) | [8, 16) | [100, 110)",990.0
98
+ B097,B097,"W[210,220) P[16,24) E[110,120)",n 1 CV —,0,,,,,,1,,"[210, 220)","[16, 24)","[110, 120)",y16,"[210, 220) | [16, 24) | [110, 120)",1160.0
@@ -0,0 +1,3 @@
1
+ row,label,estimate,lower,upper
2
+ 001,Study A,0.8,0.6,1.0
3
+ 002,Study B,1.1,0.9,1.3
@@ -0,0 +1,5 @@
1
+ row,id,x,class
2
+ 01,001,-2,normal
3
+ 01,002,0,normal
4
+ 01,003,7,outlier
5
+ 02,004,1,singleton
@@ -0,0 +1,7 @@
1
+ row,id,estimate,lower,upper,class,stats
2
+ 01,a,0.611,0.608,0.614,cohort_a,0.611 ± 0.003
3
+ 01,b,0.613,0.608,0.618,cohort_b,0.613 ± 0.005
4
+ 01,r,0.616,0.611,0.621,repeat,0.616 ± 0.005
5
+ 02,a,0.621,0.618,0.624,cohort_a,0.621 ± 0.003
6
+ 02,b,0.623,0.618,0.628,cohort_b,0.623 ± 0.005
7
+ 02,r,0.626,0.621,0.631,repeat,0.626 ± 0.005
@@ -0,0 +1,3 @@
1
+ row,label,N
2
+ 01,$S_1$,3
3
+ 02,$S_2$,4
@@ -0,0 +1,21 @@
1
+ row,id,x,class
2
+ 01,001,0.605,cohort_a
3
+ 01,002,0.608,cohort_a
4
+ 01,003,0.610,cohort_a
5
+ 01,004,0.611,cohort_a
6
+ 01,005,0.612,cohort_a
7
+ 01,006,0.613,cohort_a
8
+ 01,007,0.614,cohort_a
9
+ 01,008,0.616,cohort_a
10
+ 01,009,0.618,cohort_a
11
+ 01,010,0.620,cohort_a
12
+ 02,001,0.615,cohort_a
13
+ 02,002,0.618,cohort_a
14
+ 02,003,0.620,cohort_a
15
+ 02,004,0.621,cohort_a
16
+ 02,005,0.622,cohort_a
17
+ 02,006,0.623,cohort_a
18
+ 02,007,0.624,cohort_a
19
+ 02,008,0.626,cohort_a
20
+ 02,009,0.628,cohort_a
21
+ 02,010,0.630,cohort_a
@@ -0,0 +1,3 @@
1
+ row,label,N,stats,lower,q1,median,q3,upper
2
+ 01,$S_1$,3,"0.612 [0.610,0.614]",0.605,0.610,0.612,0.614,0.620
3
+ 02,$S_2$,4,"0.622 [0.620,0.624]",0.615,0.620,0.622,0.624,0.630
@@ -0,0 +1,21 @@
1
+ version: '0.3'
2
+ DataSet:
3
+ - name: rows
4
+ path: ./data/interval.csv
5
+ type: csv
6
+ Figures:
7
+ - name: forest-interval
8
+ type: forest
9
+ data: rows
10
+ glyph: interval
11
+ title:
12
+ text: Generic interval comparison
13
+ x:
14
+ label: Supplied coordinates
15
+ reference: 0
16
+ output:
17
+ dir: ../../Workshop/forest_native
18
+ formats:
19
+ - png
20
+ - svg
21
+ dpi: 220
@@ -0,0 +1,52 @@
1
+ # No primary glyph coordinates or points; every row displays three supplied intervals.
2
+ DataSet:
3
+ - {name: rows, path: ./data/summary-labels.csv, type: csv}
4
+ - {name: intervals, path: ./data/summary-intervals.csv, type: csv}
5
+ Figures:
6
+ - name: forest-intervals-only
7
+ type: forest
8
+ data: rows
9
+ intervals: intervals
10
+ title: {text: Supplied intervals only, fontsize: 7}
11
+ header_note: {text: 'MC entries supplied by the caller', fontsize: 4.3}
12
+ columns:
13
+ - {field: label, label: Input set, role: row_name, math: true}
14
+ - {field: N, label: N inputs, role: left}
15
+ x:
16
+ label: Supplied coordinate
17
+ lim: [0.60, 0.66]
18
+ ticks: [0.60, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66]
19
+ description:
20
+ text: |
21
+ Supplied summaries.
22
+ SD is not a CI.
23
+
24
+ Example cut:
25
+ $p_T > 25\,\mathrm{GeV}$
26
+ fontsize: 4.3
27
+ math: true
28
+ frame: {axlogo: false}
29
+ forest:
30
+ legend_math: true
31
+ typography: {family: DejaVu Sans}
32
+ geometry:
33
+ footer_mm: 32
34
+ point_band_mm: 7
35
+ row_band_mm: 10
36
+ row_pitch_mm: 10.3
37
+ plot_y_mm: 6
38
+ cell_y_mm: 1.2
39
+ value_column_mm: 0
40
+ legend_start_columns: [2, 6]
41
+ description_start_column: 9
42
+ description_columns: 4
43
+ axis: {tick_suffix: ''}
44
+ grid: {show: true, divisions: 4, alpha: 0.12}
45
+ overlays:
46
+ legend: {label: '$\mathrm{mean}\pm\mathrm{SD}$', color: '#000000'}
47
+ annotation: {field: stats, fontsize: 4.3, gap_mm: 0.5}
48
+ classes:
49
+ cohort_a: {label: A, color: '#0072B2', offset_mm: -1.6}
50
+ cohort_b: {label: B, color: '#D55E00', alpha: 0.6, linestyle: '--', offset_mm: 0}
51
+ repeat: {label: Repeat, color: '#009E73', marker: x, offset_mm: 1.6}
52
+ output: {dir: /tmp/jarvisplot-forest-examples, formats: [png, pdf], dpi: 220}