forgegraph 0.6.0__tar.gz → 0.7.0__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.
- {forgegraph-0.6.0 → forgegraph-0.7.0}/CHANGELOG.md +33 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/CONTRIBUTING.md +1 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/PKG-INFO +2 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/README.md +1 -0
- forgegraph-0.7.0/docs/examples/acme_polarization.yaml +24 -0
- forgegraph-0.7.0/docs/examples/assay_summary.yaml +33 -0
- forgegraph-0.7.0/docs/examples/cells.layout.yaml +26 -0
- forgegraph-0.7.0/docs/examples/co2.yaml +28 -0
- forgegraph-0.7.0/docs/examples/dose_response.yaml +33 -0
- forgegraph-0.7.0/docs/examples/durability.yaml +26 -0
- forgegraph-0.7.0/docs/examples/lab_polarization.yaml +24 -0
- forgegraph-0.7.0/docs/examples/packs/lab/formats/poster.yaml +11 -0
- forgegraph-0.7.0/docs/examples/packs/lab/pack.yaml +5 -0
- forgegraph-0.7.0/docs/examples/packs/lab/themes/lab_theme.yaml +13 -0
- forgegraph-0.7.0/docs/examples/penguins.yaml +29 -0
- forgegraph-0.7.0/docs/examples/plate_spectra.yaml +32 -0
- forgegraph-0.7.0/docs/examples/polarization.yaml +24 -0
- forgegraph-0.7.0/docs/examples/savings.yaml +58 -0
- forgegraph-0.7.0/docs/examples/tips_side_by_side.yaml +46 -0
- forgegraph-0.7.0/docs/examples/tips_stacked.yaml +42 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/graphspecs/graphspec_example.md +7 -7
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/pack.md +2 -2
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/themes/light_theme.md +1 -1
- forgegraph-0.7.0/docs/site/gallery.md +135 -0
- forgegraph-0.7.0/docs/site/guides/configs.md +38 -0
- forgegraph-0.7.0/docs/site/guides/graphs.md +74 -0
- forgegraph-0.7.0/docs/site/guides/layers.md +59 -0
- forgegraph-0.7.0/docs/site/guides/layouts.md +68 -0
- forgegraph-0.7.0/docs/site/guides/provenance.md +41 -0
- forgegraph-0.7.0/docs/site/guides/schedules.md +42 -0
- forgegraph-0.7.0/docs/site/guides/series.md +92 -0
- forgegraph-0.7.0/docs/site/guides/themes-formats-packs.md +70 -0
- forgegraph-0.7.0/docs/site/help/troubleshooting.md +133 -0
- forgegraph-0.7.0/docs/site/release-notes.md +3 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/catalogs/layer_reference.md +4 -2
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/graphspec_example.md +8 -8
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/graphtype_xy.md +4 -4
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/layer_reference.md +6 -5
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/pack.md +2 -2
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/theme.md +1 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/README.md +1 -0
- forgegraph-0.7.0/examples/sample-data/plate_spectra.csv +4561 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/mkdocs.yml +21 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/pyproject.toml +1 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/build_example_data.py +28 -2
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/build_sample_data.py +26 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/docs_site.py +113 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/catalog_build/cards.py +4 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/axes.py +15 -4
- forgegraph-0.7.0/src/forgegraph/drawing/equation.py +231 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/key.py +8 -5
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/labels.py +154 -13
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/layers.py +206 -30
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/marks.py +101 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/page.py +18 -2
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/readout.py +63 -7
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/ticks.py +10 -3
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/xy.py +130 -33
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/graphspecs/graphspec_example.yaml +7 -7
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/pack.yaml +2 -2
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/themes/light_theme.yaml +1 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/SKILL.md +1 -0
- forgegraph-0.7.0/src/forgegraph/skill/forgegraph/examples/heat_map.parquet +0 -0
- forgegraph-0.7.0/src/forgegraph/skill/forgegraph/examples/heat_map.yaml +32 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/catalogs/layer_reference.yaml +3 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/graphspec_example.yaml +8 -8
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/graphtype_xy.yaml +4 -4
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/layer_reference.yaml +6 -5
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/pack.yaml +2 -2
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/theme.yaml +1 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_axes.py +61 -0
- forgegraph-0.7.0/tests/test_docs_site.py +27 -0
- forgegraph-0.7.0/tests/test_key_position.py +219 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_layers.py +238 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_layout.py +15 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_marks.py +146 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_readout.py +138 -1
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_render.py +24 -7
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_series.py +62 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/uv.lock +1 -1
- forgegraph-0.6.0/tests/test_key_position.py +0 -83
- {forgegraph-0.6.0 → forgegraph-0.7.0}/.gitignore +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/.pre-commit-config.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/CITATION.cff +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/LICENSE +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/SECURITY.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/TRADEMARKS.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/design/architecture.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/design/initial-specification.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/acme/formats/slide.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/acme/graphspecs/polarization-curve.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/acme/layouts/dashboard.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/acme/pack.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/acme/schedules/workday.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/acme/themes/acme.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/catalogs/formats/compact_format.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/catalogs/formats/wide_format.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/catalogs/themes/light_theme.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/formats/compact_format.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/formats/wide_format.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/layouts/layout.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/schedules/schedule.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/site/get-started/installation.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/site/get-started/quickstart.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/site/get-started/skill.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/site/index.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/site/reference/python-api.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/site/stylesheets/extra.css +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/catalogs/graphtype_xy.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/catalogs/layer_error_bar.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/catalogs/layer_note.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/config.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/format.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/layer_error_bar.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/layer_note.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/layout_example.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/provenance.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/schedule.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/docs/specifications/styles.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/README.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/forgegraph.toml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/lab_throughput.layout.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/lab_throughput.layout.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/lost_runs.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/lost_runs.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/ops/formats/dashboard.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/ops/formats/dashboard.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/ops/pack.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/prep_lab_dashboard.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/run_time.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/run_time.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/runs_gc_ms_01.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/runs_hplc_01.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/runs_hplc_02.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/runs_icp_oes_01.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/samples_weekly.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/throughput_weekly.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/weekly_gc_ms_01.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/weekly_hplc_01.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/weekly_hplc_02.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/weekly_icp_oes_01.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/weekly_runs.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/dashboard/weekly_samples.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/cell_durability.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/cell_performance.layout.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/cell_performance.layout.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/cell_polarization.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/forgegraph.toml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/hfr_time.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/journal/formats/journal-double.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/journal/formats/journal-double.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/journal/pack.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/polarization.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/prep_cells.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/layouts/paper/voltage_time.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/packs/acme/formats/slide.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/packs/acme/graphspecs/polarization-curve.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/packs/acme/layouts/dashboard.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/packs/acme/pack.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/packs/acme/references/house.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/packs/acme/schedules/workday.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/packs/acme/themes/acme.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/air_passengers.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/air_passengers_by_month.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/anscombe.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/assay_summary.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/cell_durability.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/cell_polarization.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/co2_monthly.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/diamonds.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/dose_response.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/economics.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/enzyme_kinetics.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/fmri.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/gapminder.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/geyser.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/growth.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/iris.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/lab_export.xlsx +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/lab_runs.xlsx +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/penguins.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/seaice.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/sensor_log_eu.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/stocks.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/tips.csv +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/examples/sample-data/weather.xlsx +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/build_recreations.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/check_denylist.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/forgemark.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/mirror_specs.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/report_skill_evals.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/run_skill_evals.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/smoke_installed.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/scripts/visual_changelog.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/__main__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/canvas.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/catalog_build/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/catalog_build/build.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/catalog_build/examples.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/catalog_build/files.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/catalog_build/page.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/cli/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/cli/catalog.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/cli/graphs.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/cli/jobs.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/cli/schema.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/cli/skill.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/data.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/colorbar.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/dates.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/errors.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/export.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/figure.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/layout.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/limits.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/lint.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/markup.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/spacing.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/style.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawing/text.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/drawn.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/IBMPlexSerif-Bold.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/IBMPlexSerif-Light.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/IBMPlexSerif-Medium.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/IBMPlexSerif-Regular.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/IBMPlexSerif-SemiBold.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/OFL-IBMPlexSerif.txt +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/OFL-Roboto.txt +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/OFL-SourceSans3.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/Roboto-Bold.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/Roboto-Italic.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/Roboto-Light.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/Roboto-Medium.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/Roboto-Regular.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/Roboto-SemiBold.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/SourceSans3-Bold.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/SourceSans3-It.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/SourceSans3-Light.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/SourceSans3-Medium.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/SourceSans3-Regular.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/SourceSans3-Semibold.ttf +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/fonts/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/forgemark.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/graph.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/jobs/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/jobs/run.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/jobs/status.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/layouts/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/layouts/separators.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/catalogs/formats/compact_format.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/catalogs/formats/wide_format.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/catalogs/themes/light_theme.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/formats/compact_format.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/formats/wide_format.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/graphspecs/dated.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/graphspecs/fanned.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/graphspecs/polarization.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/graphspecs/reinforced.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/layouts/layout.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/packs/forgegraph_default/schedules/schedule.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/examples/bars.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/examples/figure.layout.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/examples/figure.schedule.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/examples/layers.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/examples/xy.parquet +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/examples/xy.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/references/requests.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/skill/forgegraph/references/themes_formats_configs.md +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/__init__.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/access.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/common.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/explain.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/layers.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/layout.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/loaded.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/parameters.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/provenance.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/registry.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/resolve.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/schedule.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/series.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/tags.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/spec/validate.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/catalogs/graphtype_xy.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/catalogs/layer_error_bar.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/catalogs/layer_note.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/config.toml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/format.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/layer_error_bar.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/layer_note.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/layout_example.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/provenance.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/schedule.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/src/forgegraph/specifications/styles.yaml +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/crowded_runs.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/flow_sweep_wide.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/fuel_by_size.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/layout_anode_layers.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/layout_screening_and_rate.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/polarization.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/polarization_narrow.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/precipitation_loglog.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/replicates.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/screening_scatter.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/baselines/separator_colorbar.png +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/conftest.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/fixtures/catalog_comments.html +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/pack_helpers.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/recreations.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/render_helpers.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/spec_mirror.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_blank.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_catalog.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_catalog_files.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_catalog_inputs.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_catalog_page.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_cli.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_dates.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_denylist.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_jobs.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_labels.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_lint.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_markup.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_packaging.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_packs.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_perturbation.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_regression.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_schedule.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_smoke.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_spec_comments.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_spec_mirrors.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_specs.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_styles.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_tags.py +0 -0
- {forgegraph-0.6.0 → forgegraph-0.7.0}/tests/test_text.py +0 -0
|
@@ -2,6 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
ForgeGraph follows [semantic versioning](https://semver.org). Before 1.0, a minor version may change how graphs look or how specs are written.
|
|
4
4
|
|
|
5
|
+
## 0.7.0 (2026-11-02)
|
|
6
|
+
|
|
7
|
+
### New Features
|
|
8
|
+
|
|
9
|
+
- **Heat maps.** `marker.shape: grid_cell` makes each point fill its place in a grid, so an xy graph colored by a column of numbers becomes a heat map. The cells fit at any format, and an HTML page shows a cell's values when you point at it. There's an example in the gallery and in the skill.
|
|
10
|
+
- **Reference lines from an equation.** A reference line can now be an equation instead of a value, such as `equation: x` for a y = x line on a parity plot, or `2x^2 - 3x + 1` for a curve. Two equations, such as `x - 10` and `x + 10`, make a tolerance band.
|
|
11
|
+
- **No tick labels.** `tick.algorithm: none` draws no ticks or tick labels on an axis, for when there are too many names to fit and readers can point at a point to see its name.
|
|
12
|
+
- **Tab bars stay in view.** On a layout's HTML page, the tabs now stay at the top of the window as you scroll, and switching tabs keeps your place on the page.
|
|
13
|
+
|
|
14
|
+
### Changes
|
|
15
|
+
|
|
16
|
+
- **More in the hover box.** On a graph of more than one series, the hover box now always names the series. It also shows each column a series is split by, so splitting a scatter by its sample's name shows that name on each point.
|
|
17
|
+
- **More room for keys.** A reference line's label at `position: auto` now goes after the keys and keeps clear of them, so keys and labels may sit in different places than before. A second key can go under or beside the first, and the y-axis can grow by up to `axis.max_extension` to make room for a key. Some graphs that couldn't fit a key now draw, with a longer y-axis.
|
|
18
|
+
- **Clearer key errors.** When a key doesn't fit, the error now says what's in the way at each position.
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
- Coloring by the column on a categorical axis gave every point the first color and labelled the groups 0.0, 1.0 and 2.0. Each category now gets its own color, and the same goes for marker shapes and line styles. The axis already names the groups, so with `legend.method: auto` they aren't named again.
|
|
23
|
+
- A categorical axis with exactly two categories had no tick labels. It now has one for each category.
|
|
24
|
+
- An aggregated series colored by a column of numbers crashed with a message from matplotlib. If the rows behind a point share one value, the point now takes that color. If they don't, it's an error that says which column to change.
|
|
25
|
+
- The hover box on an integer axis showed `2.0` where it now shows `2`.
|
|
26
|
+
|
|
27
|
+
## 0.6.1 (2026-10-31)
|
|
28
|
+
|
|
29
|
+
### Changes
|
|
30
|
+
|
|
31
|
+
- **A reference line for each look.** With `per_series`, a reference layer now draws a line for each look its series are drawn in: each color, marker shape, marker fill and line style. Before, groups that differed only in marker shape, fill or line style shared one line. Lines that `split` draws, such as replicates, still share one.
|
|
32
|
+
- **Guides on the documentation site.** The site now has a guide to each part of ForgeGraph, a gallery of worked examples, help with every lint issue and common error, and the release notes.
|
|
33
|
+
|
|
34
|
+
### Bug Fixes
|
|
35
|
+
|
|
36
|
+
- `per_series` with series colored on a scale is now an error. Before, it drew a single line over all the rows in the palette's first color.
|
|
37
|
+
|
|
5
38
|
## 0.6.0 (2026-10-30)
|
|
6
39
|
|
|
7
40
|
### New Features
|
|
@@ -33,7 +33,7 @@ uv run python scripts/build_recreations.py --baselines
|
|
|
33
33
|
|
|
34
34
|
## The documentation site
|
|
35
35
|
|
|
36
|
-
The site is built with MkDocs from docs/site. Its Reference pages are generated as it's built: the commands from the CLI, the specifications and the built-in pack from their files, and the Python API from the docstrings (scripts/docs_site.py). To build it and read it while you work:
|
|
36
|
+
The site is built with MkDocs from docs/site. Its Reference pages are generated as it's built: the commands from the CLI, the specifications and the built-in pack from their files, and the Python API from the docstrings (scripts/docs_site.py). The guides' and gallery's graphs are drawn as it's built, from the GraphSpecs, layouts and pack in docs/examples and the layouts in examples/layouts, with data from examples/sample-data, so an example that can't be drawn standard and lint-clean fails the build. To build it and read it while you work:
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
39
|
uv run --group docs mkdocs serve
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: forgegraph
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Fast, consistent, publication-quality graphs from pandas DataFrames, usable by people and AI agents.
|
|
5
5
|
Project-URL: Repository, https://github.com/sskaye/forgegraph
|
|
6
6
|
Project-URL: Issues, https://github.com/sskaye/forgegraph/issues
|
|
@@ -172,6 +172,7 @@ ForgeGraph is [MIT-licensed](https://github.com/sskaye/forgegraph/blob/main/LICE
|
|
|
172
172
|
|
|
173
173
|
## Documentation
|
|
174
174
|
|
|
175
|
+
- [Documentation site](https://sskaye.github.io/forgegraph/): getting started, and a reference for every specification, command and Python function.
|
|
175
176
|
- [Specifications](https://github.com/sskaye/forgegraph/blob/main/docs/specifications): the file that defines each kind of spec, every parameter with its default, range and description.
|
|
176
177
|
- [Built-in pack](https://github.com/sskaye/forgegraph/blob/main/docs/packs/forgegraph_default): forgegraph_default's specs.
|
|
177
178
|
- [Changelog](https://github.com/sskaye/forgegraph/blob/main/CHANGELOG.md).
|
|
@@ -142,6 +142,7 @@ ForgeGraph is [MIT-licensed](https://github.com/sskaye/forgegraph/blob/main/LICE
|
|
|
142
142
|
|
|
143
143
|
## Documentation
|
|
144
144
|
|
|
145
|
+
- [Documentation site](https://sskaye.github.io/forgegraph/): getting started, and a reference for every specification, command and Python function.
|
|
145
146
|
- [Specifications](https://github.com/sskaye/forgegraph/blob/main/docs/specifications): the file that defines each kind of spec, every parameter with its default, range and description.
|
|
146
147
|
- [Built-in pack](https://github.com/sskaye/forgegraph/blob/main/docs/packs/forgegraph_default): forgegraph_default's specs.
|
|
147
148
|
- [Changelog](https://github.com/sskaye/forgegraph/blob/main/CHANGELOG.md).
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: acme_polarization
|
|
2
|
+
version: 0
|
|
3
|
+
description: The polarization curves in the example acme pack's theme and slide format.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: acme/acme
|
|
9
|
+
format: acme/slide
|
|
10
|
+
text:
|
|
11
|
+
title: Polarization curves
|
|
12
|
+
data:
|
|
13
|
+
file: cell_polarization.parquet
|
|
14
|
+
preprocessing: examples/sample-data/cell_polarization.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: current_density_a_cm2
|
|
19
|
+
title: Current density (A/cm^2)
|
|
20
|
+
y:
|
|
21
|
+
title: Voltage (V)
|
|
22
|
+
series:
|
|
23
|
+
voltage_v:
|
|
24
|
+
color: cell
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: assay_summary
|
|
2
|
+
version: 0
|
|
3
|
+
description: Each compound's mean response at each dose, with error bars from the standard deviations in the data.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Dose response
|
|
12
|
+
data:
|
|
13
|
+
file: assay_summary.parquet
|
|
14
|
+
preprocessing: examples/sample-data/assay_summary.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: dose_uM
|
|
19
|
+
type: categorical
|
|
20
|
+
title: Dose (µM)
|
|
21
|
+
y:
|
|
22
|
+
title: Response (%)
|
|
23
|
+
series:
|
|
24
|
+
mean_response_pct:
|
|
25
|
+
color: compound
|
|
26
|
+
layers:
|
|
27
|
+
spread:
|
|
28
|
+
type: error_bar
|
|
29
|
+
value:
|
|
30
|
+
lower: sd_pct
|
|
31
|
+
upper: sd_pct
|
|
32
|
+
aggregation:
|
|
33
|
+
function: None
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: cells
|
|
2
|
+
version: 0
|
|
3
|
+
description: The fuel cells' graphs under one tab, beside a tab of the CO₂ record.
|
|
4
|
+
extends: forgegraph_default/layout
|
|
5
|
+
|
|
6
|
+
parameters:
|
|
7
|
+
specifications:
|
|
8
|
+
format: forgegraph_default/compact_format
|
|
9
|
+
tabs:
|
|
10
|
+
Cells:
|
|
11
|
+
tabs:
|
|
12
|
+
Polarization:
|
|
13
|
+
grid:
|
|
14
|
+
areas: [[curves]]
|
|
15
|
+
tiles:
|
|
16
|
+
curves: polarization.yaml
|
|
17
|
+
Durability:
|
|
18
|
+
grid:
|
|
19
|
+
areas: [[voltage]]
|
|
20
|
+
tiles:
|
|
21
|
+
voltage: durability.yaml
|
|
22
|
+
CO2:
|
|
23
|
+
grid:
|
|
24
|
+
areas: [[record]]
|
|
25
|
+
tiles:
|
|
26
|
+
record: co2.yaml
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: co2
|
|
2
|
+
version: 0
|
|
3
|
+
description: Monthly CO₂ at Mauna Loa, on a date axis, with the line broken where a month is missing.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Atmospheric CO_{2}
|
|
12
|
+
data:
|
|
13
|
+
file: co2_monthly.parquet
|
|
14
|
+
preprocessing: examples/sample-data/co2_monthly.csv, with its dates read as dates and -99.99 as missing
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: date
|
|
19
|
+
title: None
|
|
20
|
+
y:
|
|
21
|
+
title: CO_{2} (ppm)
|
|
22
|
+
series:
|
|
23
|
+
Monthly mean:
|
|
24
|
+
column: co2_ppm
|
|
25
|
+
marker:
|
|
26
|
+
show: false
|
|
27
|
+
line:
|
|
28
|
+
missing_values: gap
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: dose_response
|
|
2
|
+
version: 0
|
|
3
|
+
description: The mean response of three compounds at each dose, with error bars of one standard deviation and a note.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Dose response
|
|
12
|
+
data:
|
|
13
|
+
file: dose_response.parquet
|
|
14
|
+
preprocessing: examples/sample-data/dose_response.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: dose_uM
|
|
19
|
+
type: categorical
|
|
20
|
+
title: Dose (µM)
|
|
21
|
+
y:
|
|
22
|
+
title: Response (%)
|
|
23
|
+
series:
|
|
24
|
+
response_pct:
|
|
25
|
+
aggregation:
|
|
26
|
+
function: mean
|
|
27
|
+
color: compound
|
|
28
|
+
layers:
|
|
29
|
+
spread:
|
|
30
|
+
type: error_bar
|
|
31
|
+
replicates:
|
|
32
|
+
type: note
|
|
33
|
+
text: Mean ± SD of 3 replicates
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: durability
|
|
2
|
+
version: 0
|
|
3
|
+
description: Each cell's voltage over a 200-hour durability test, as lines without markers.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Durability test
|
|
12
|
+
data:
|
|
13
|
+
file: cell_durability.parquet
|
|
14
|
+
preprocessing: examples/sample-data/cell_durability.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: hours
|
|
19
|
+
title: Time (h)
|
|
20
|
+
y:
|
|
21
|
+
title: Voltage (V)
|
|
22
|
+
series:
|
|
23
|
+
voltage_v:
|
|
24
|
+
color: cell
|
|
25
|
+
marker:
|
|
26
|
+
show: false
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: lab_polarization
|
|
2
|
+
version: 0
|
|
3
|
+
description: The polarization curves in the lab pack's theme and poster format.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: lab/lab_theme
|
|
9
|
+
format: lab/poster
|
|
10
|
+
text:
|
|
11
|
+
title: Polarization curves
|
|
12
|
+
data:
|
|
13
|
+
file: cell_polarization.parquet
|
|
14
|
+
preprocessing: examples/sample-data/cell_polarization.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: current_density_a_cm2
|
|
19
|
+
title: Current density (A/cm^2)
|
|
20
|
+
y:
|
|
21
|
+
title: Voltage (V)
|
|
22
|
+
series:
|
|
23
|
+
voltage_v:
|
|
24
|
+
color: cell
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
name: poster
|
|
2
|
+
version: 0
|
|
3
|
+
description: A graph for a poster, wider than the built-in compact format and with larger text.
|
|
4
|
+
extends: forgegraph_default/compact_format
|
|
5
|
+
|
|
6
|
+
parameters:
|
|
7
|
+
figure:
|
|
8
|
+
width: 200
|
|
9
|
+
base_size: 22
|
|
10
|
+
output:
|
|
11
|
+
file_types: [png, pdf]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name: lab_theme
|
|
2
|
+
version: 0
|
|
3
|
+
description: The lab's look, the built-in theme with Paul Tol's bright colors and horizontal grid lines.
|
|
4
|
+
extends: forgegraph_default/light_theme
|
|
5
|
+
|
|
6
|
+
parameters:
|
|
7
|
+
series:
|
|
8
|
+
colors: tol_bright
|
|
9
|
+
grid:
|
|
10
|
+
y:
|
|
11
|
+
show: true
|
|
12
|
+
title:
|
|
13
|
+
weight: bold
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: penguins
|
|
2
|
+
version: 0
|
|
3
|
+
description: Bill depth against bill length for three penguin species, as markers colored and shaped by species.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Penguin bills
|
|
12
|
+
data:
|
|
13
|
+
file: penguins.parquet
|
|
14
|
+
preprocessing: examples/sample-data/penguins.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: bill_length_mm
|
|
19
|
+
title: Bill length (mm)
|
|
20
|
+
y:
|
|
21
|
+
title: Bill depth (mm)
|
|
22
|
+
series:
|
|
23
|
+
bill_depth_mm:
|
|
24
|
+
color: species
|
|
25
|
+
line:
|
|
26
|
+
show: false
|
|
27
|
+
marker:
|
|
28
|
+
shape: species
|
|
29
|
+
size: 0.3
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: plate_spectra
|
|
2
|
+
version: 0
|
|
3
|
+
description: A heat map of a plate's spectra, one row for each sample, colored by absorbance.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: A plate of UV-Vis spectra
|
|
12
|
+
data:
|
|
13
|
+
file: plate_spectra.parquet
|
|
14
|
+
preprocessing: examples/sample-data/plate_spectra.csv
|
|
15
|
+
arrangement:
|
|
16
|
+
base_axis: y
|
|
17
|
+
axis:
|
|
18
|
+
x:
|
|
19
|
+
title: Wavelength (nm)
|
|
20
|
+
y:
|
|
21
|
+
data:
|
|
22
|
+
column: Sample
|
|
23
|
+
type: categorical
|
|
24
|
+
title: Sample
|
|
25
|
+
series:
|
|
26
|
+
Wavelength (nm):
|
|
27
|
+
color: Normalized absorbance
|
|
28
|
+
color_scale: continuous
|
|
29
|
+
marker:
|
|
30
|
+
shape: grid_cell
|
|
31
|
+
line:
|
|
32
|
+
show: false
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: polarization
|
|
2
|
+
version: 0
|
|
3
|
+
description: Polarization curves of three fuel cells, voltage against current density.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Polarization curves
|
|
12
|
+
data:
|
|
13
|
+
file: cell_polarization.parquet
|
|
14
|
+
preprocessing: examples/sample-data/cell_polarization.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: current_density_a_cm2
|
|
19
|
+
title: Current density (A/cm^2)
|
|
20
|
+
y:
|
|
21
|
+
title: Voltage (V)
|
|
22
|
+
series:
|
|
23
|
+
voltage_v:
|
|
24
|
+
color: cell
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: savings
|
|
2
|
+
version: 0
|
|
3
|
+
description: The personal savings rate by month, with a line at its mean and a band one standard deviation either side.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Personal savings rate
|
|
12
|
+
data:
|
|
13
|
+
file: economics.parquet
|
|
14
|
+
preprocessing: examples/sample-data/economics.csv, with its dates read as dates
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: date
|
|
19
|
+
title: None
|
|
20
|
+
y:
|
|
21
|
+
title: Savings rate (%)
|
|
22
|
+
series:
|
|
23
|
+
Savings rate:
|
|
24
|
+
column: psavert
|
|
25
|
+
marker:
|
|
26
|
+
show: false
|
|
27
|
+
layers:
|
|
28
|
+
spread:
|
|
29
|
+
type: reference
|
|
30
|
+
axis: y
|
|
31
|
+
line_1:
|
|
32
|
+
value: psavert
|
|
33
|
+
aggregation:
|
|
34
|
+
function: mean
|
|
35
|
+
offset:
|
|
36
|
+
function: stddev
|
|
37
|
+
multiplier: -1
|
|
38
|
+
line:
|
|
39
|
+
style: None
|
|
40
|
+
line_2:
|
|
41
|
+
value: psavert
|
|
42
|
+
aggregation:
|
|
43
|
+
function: mean
|
|
44
|
+
offset:
|
|
45
|
+
function: stddev
|
|
46
|
+
line:
|
|
47
|
+
style: None
|
|
48
|
+
mean:
|
|
49
|
+
type: reference
|
|
50
|
+
axis: y
|
|
51
|
+
line_1:
|
|
52
|
+
value: psavert
|
|
53
|
+
aggregation:
|
|
54
|
+
function: mean
|
|
55
|
+
label:
|
|
56
|
+
text: aggregation_value
|
|
57
|
+
position: end_above
|
|
58
|
+
inside: false
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: tips_side_by_side
|
|
2
|
+
version: 0
|
|
3
|
+
description: The mean tip on each day, for women and men side by side, with the 95 % confidence interval of each mean.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Tips by day
|
|
12
|
+
data:
|
|
13
|
+
file: tips.parquet
|
|
14
|
+
preprocessing: examples/sample-data/tips.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: day
|
|
19
|
+
order:
|
|
20
|
+
method: value
|
|
21
|
+
direction: descending
|
|
22
|
+
title: None
|
|
23
|
+
y:
|
|
24
|
+
title: Mean tip ($)
|
|
25
|
+
arrangement:
|
|
26
|
+
offset: side_by_side
|
|
27
|
+
legend:
|
|
28
|
+
key:
|
|
29
|
+
inside: false
|
|
30
|
+
series:
|
|
31
|
+
tip:
|
|
32
|
+
aggregation:
|
|
33
|
+
function: mean
|
|
34
|
+
color: sex
|
|
35
|
+
line:
|
|
36
|
+
show: false
|
|
37
|
+
marker:
|
|
38
|
+
show: false
|
|
39
|
+
bar:
|
|
40
|
+
show: true
|
|
41
|
+
layers:
|
|
42
|
+
spread:
|
|
43
|
+
type: error_bar
|
|
44
|
+
value:
|
|
45
|
+
aggregation:
|
|
46
|
+
function: ci
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: tips_stacked
|
|
2
|
+
version: 0
|
|
3
|
+
description: The total of the bills on each day, stacked by lunch and dinner, with each day's total written above.
|
|
4
|
+
extends: None
|
|
5
|
+
parameters: !var
|
|
6
|
+
specifications:
|
|
7
|
+
graph_type: xy
|
|
8
|
+
theme: forgegraph_default/light_theme
|
|
9
|
+
format: forgegraph_default/compact_format
|
|
10
|
+
text:
|
|
11
|
+
title: Bills by day
|
|
12
|
+
data:
|
|
13
|
+
file: tips.parquet
|
|
14
|
+
preprocessing: examples/sample-data/tips.csv, unchanged
|
|
15
|
+
axis:
|
|
16
|
+
x:
|
|
17
|
+
data:
|
|
18
|
+
column: day
|
|
19
|
+
order:
|
|
20
|
+
method: value
|
|
21
|
+
direction: descending
|
|
22
|
+
title: None
|
|
23
|
+
y:
|
|
24
|
+
title: Total of the bills ($)
|
|
25
|
+
arrangement:
|
|
26
|
+
stacking: sum
|
|
27
|
+
total:
|
|
28
|
+
show: true
|
|
29
|
+
legend:
|
|
30
|
+
key:
|
|
31
|
+
inside: false
|
|
32
|
+
series:
|
|
33
|
+
total_bill:
|
|
34
|
+
aggregation:
|
|
35
|
+
function: sum
|
|
36
|
+
color: time
|
|
37
|
+
line:
|
|
38
|
+
show: false
|
|
39
|
+
marker:
|
|
40
|
+
show: false
|
|
41
|
+
bar:
|
|
42
|
+
show: true
|
{forgegraph-0.6.0 → forgegraph-0.7.0}/docs/packs/forgegraph_default/graphspecs/graphspec_example.md
RENAMED
|
@@ -30,7 +30,7 @@ parameters: !var *# !var/!fix sets whether a GraphSpec may ch
|
|
|
30
30
|
min: None *# \[None, float, date\]; The axis minimum. On a datetime axis, it's a date, e.g. 2025-08-25 or "2025-08-25T06:00". If None, it's the lowest value minus plot_area.gap × the data's range.*\
|
|
31
31
|
max: None *# \[None, float, date\]; The axis maximum. On a datetime axis, it's a date, e.g. 2025-08-25 or "2025-08-25T06:00". If None, it's the highest value plus plot_area.gap × the data's range.*\
|
|
32
32
|
tick:\
|
|
33
|
-
algorithm: auto *# \[auto, all, manual\]; How the ticks are placed. auto uses the theme's algorithm, or on dates, the boundaries of one calendar unit. all places a tick at every value. manual places one every tick.step.*\
|
|
33
|
+
algorithm: auto *# \[auto, all, manual, none\]; How the ticks are placed. auto uses the theme's algorithm, or on dates, the boundaries of one calendar unit. all places a tick at every value. manual places one every tick.step. none draws no ticks or tick labels.*\
|
|
34
34
|
step: None *# \[None, float > 0, text\]; The distance between ticks when algorithm is manual, e.g. 5 or "2 week". On a log axis, it's a factor.*\
|
|
35
35
|
label:\
|
|
36
36
|
format: auto *# \[auto, format\]; The tick label format. auto chooses one from the values, and for dates, from the tick unit.*\
|
|
@@ -46,7 +46,7 @@ parameters: !var *# !var/!fix sets whether a GraphSpec may ch
|
|
|
46
46
|
min: None *# \[None, float, date\]; The axis minimum. On a datetime axis, it's a date, e.g. 2025-08-25 or "2025-08-25T06:00". If None, it's the lowest value minus plot_area.gap × the data's range.*\
|
|
47
47
|
max: None *# \[None, float, date\]; The axis maximum. On a datetime axis, it's a date, e.g. 2025-08-25 or "2025-08-25T06:00". If None, it's the highest value plus plot_area.gap × the data's range.*\
|
|
48
48
|
tick:\
|
|
49
|
-
algorithm: auto *# \[auto, all, manual\]; How the ticks are placed. auto uses the theme's algorithm, or on dates, the boundaries of one calendar unit. all places a tick at every value. manual places one every tick.step.*\
|
|
49
|
+
algorithm: auto *# \[auto, all, manual, none\]; How the ticks are placed. auto uses the theme's algorithm, or on dates, the boundaries of one calendar unit. all places a tick at every value. manual places one every tick.step. none draws no ticks or tick labels.*\
|
|
50
50
|
step: None *# \[None, float > 0, text\]; The distance between ticks when algorithm is manual, e.g. 5 or "2 week". On a log axis, it's a factor.*\
|
|
51
51
|
label:\
|
|
52
52
|
format: auto *# \[auto, format\]; The tick label format. auto chooses one from the values, and for dates, from the tick unit.*\
|
|
@@ -60,7 +60,7 @@ parameters: !var *# !var/!fix sets whether a GraphSpec may ch
|
|
|
60
60
|
"Cell Voltage (V)":\
|
|
61
61
|
column: name *# \[name, column\]; The column of values the series draws along the axis that isn't arrangement.base_axis. name uses the column with the series' name.*\
|
|
62
62
|
aggregation: *# \[aggregation style\]; How rows at the same location are combined into one point. If its function is None, each row is drawn.*\
|
|
63
|
-
split: \[Cell, Run\] *# \[None, columns\]; Columns whose values split the series into separate lines, e.g. replicates.*\
|
|
63
|
+
split: \[Cell, Run\] *# \[None, columns\]; Columns whose values split the series into separate lines, e.g. replicates. An html page's readout shows each one.*\
|
|
64
64
|
order: sorted *# \[sorted, data\]; The order of the series' groups: sorted, or data for the order in which they first appear.*\
|
|
65
65
|
color: Cell *# \[series, hex color, column\]; The series' color. series takes the next palette color, and a column gives each of its values its own.*\
|
|
66
66
|
color_scale: auto *# \[auto, categorical, continuous\]; For a color column: categorical uses the palette, continuous a color scale and color bar, and auto continuous for numbers.*\
|
|
@@ -73,7 +73,7 @@ parameters: !var *# !var/!fix sets whether a GraphSpec may ch
|
|
|
73
73
|
missing_values: drop *# \[drop, gap\]; What happens to rows missing x or y. drop joins the line across them, and gap breaks the line. Lint counts both in dropped-rows.*\
|
|
74
74
|
marker:\
|
|
75
75
|
show: true *# \[true, false\]; Whether to draw markers.*\
|
|
76
|
-
shape: first *# \[first, series, circle, square, triangle_up, triangle_down, diamond, cross, plus, column\]; The marker shape. first is the theme's first marker shape, series takes the next one, and a column gives each of its values its own.*\
|
|
76
|
+
shape: first *# \[first, series, circle, square, triangle_up, triangle_down, diamond, cross, plus, grid_cell, column\]; The marker shape. first is the theme's first marker shape, series takes the next one, and a column gives each of its values its own. grid_cell fills the grid the points lie on, for a heat map.*\
|
|
77
77
|
fill: first *# \[first, series, filled, open, column\]; The marker fill. first is the theme's first marker fill, series takes the next one, and a column gives each of its values its own.*\
|
|
78
78
|
size: 0.5 *# \[float > 0\]; The marker size, × base size.*\
|
|
79
79
|
bar:\
|
|
@@ -91,7 +91,7 @@ parameters: !var *# !var/!fix sets whether a GraphSpec may ch
|
|
|
91
91
|
legend:\
|
|
92
92
|
method: auto *# \[auto, direct, key, none\]; How this graph names its series: one of the theme's legend.methods.*\
|
|
93
93
|
key:\
|
|
94
|
-
positions: \[top_right, top_left, bottom_right, bottom_left\] *# \[top_left, top_center, top_right, bottom_left, bottom_center, bottom_right, right_top, right_center, right_bottom\]; The positions to try, in order. The key goes in the first one where it doesn't overlap the data.*\
|
|
94
|
+
positions: \[top_right, top_left, bottom_right, bottom_left\] *# \[top_left, top_center, top_right, bottom_left, bottom_center, bottom_right, right_top, right_center, right_bottom\]; The positions to try, in order. The key goes in the first one where it doesn't overlap the data. If there's none inside the plot, it goes beside a key there, or the y-axis is extended.*\
|
|
95
95
|
inside: true *# \[true, false\]; Whether the key is inside the plot area. If false, top positions are above the plot area, bottom positions are below the x-axis title, and right positions are to its right.*\
|
|
96
96
|
title:\
|
|
97
97
|
text: column_name *# \[None, column_name, text\]; The title of every key. column_name uses the name of each key's column. Other text is allowed only when there is one key. If None, there is no title.*\
|
|
@@ -106,11 +106,11 @@ parameters: !var *# !var/!fix sets whether a GraphSpec may ch
|
|
|
106
106
|
layers: *# The layers drawn on the graph, in this order, each under a name the GraphSpec chooses. A layer may set the look its theme marks !var.*\
|
|
107
107
|
target:\
|
|
108
108
|
type: reference *# \[layer type\]; The layer's type: one of the graph type's layer.types.*\
|
|
109
|
-
axis: y *# \[x, y\]; The axis the values are on. y draws horizontal lines.*\
|
|
109
|
+
axis: y *# \[x, y\]; The axis the values are on. y draws horizontal lines, and an equation then gives y in terms of x.*\
|
|
110
110
|
line_1:\
|
|
111
111
|
value: 1.2 *# \[None, float, date, column\]; A number, a date, or a column.*\
|
|
112
112
|
label:\
|
|
113
|
-
text: Target 1.2 V *# \[None, aggregation, value, aggregation_value, text\]; aggregation writes e.g. Mean, value e.g. 14.9, and aggregation_value e.g. Mean: 14.9. Other text is written as given.*\
|
|
113
|
+
text: Target 1.2 V *# \[None, aggregation, value, aggregation_value, text\]; aggregation writes e.g. Mean, value e.g. 14.9, and aggregation_value e.g. Mean: 14.9. With an equation, value writes e.g. y = 2x. Other text is written as given.*\
|
|
114
114
|
conditions:\
|
|
115
115
|
type: note *# \[layer type\]; The layer's type: one of the graph type's layer.types.*\
|
|
116
116
|
text: "60 °C, 1 atm, H₂/air" *# \[text\]; The note's text, in label markup. A line break starts a new line.*
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
This page mirrors src/forgegraph/packs/forgegraph_default/pack.yaml, which is the specification. A test fails if they ever differ.
|
|
4
4
|
|
|
5
5
|
name: forgegraph_default *# \[text\]; The pack's name, which its specs' names start with (pack/name); a pip pack's must match its entry point.*\
|
|
6
|
-
version: 0.
|
|
6
|
+
version: 0.7.0 *# \[text\]; The pack's release version.*\
|
|
7
7
|
description: ForgeGraph's built-in default pack. So it’s always possible to create a graph. *# \[text\]; One line, describing what the pack is.*\
|
|
8
8
|
issues: https://github.com/sskaye/forgegraph/issues *# \[text\]; Where to file feature requests and bug reports about the pack.*\
|
|
9
|
-
requires: ">=0.
|
|
9
|
+
requires: ">=0.7, <0.8" *# \[None, version specifier\]; The ForgeGraph version required for the pack. pip format, e.g. ">=0.6, <1". If None, it works with any version.*
|
|
@@ -46,7 +46,7 @@ parameters: !var *# !var/!fix sets whether a GraphSpec may ch
|
|
|
46
46
|
count: 0 *# \[int ≥ 0\]; The number of minor ticks between major ticks. If 0, there are none.*\
|
|
47
47
|
length: 0.15 *# \[float ≥ 0\]; The minor tick length, × base size.*\
|
|
48
48
|
width: 0.05 *# \[float ≥ 0\]; The width, × base size. If 0, no line is drawn.*\
|
|
49
|
-
max_extension: 0.15 *# \[0-1\]; The most an axis may be extended to fit direct labels, notes and line labels inside the plot area, × its range. If 0, it's never extended.*\
|
|
49
|
+
max_extension: 0.15 *# \[0-1\]; The most an axis may be extended to fit direct labels, keys, notes and line labels inside the plot area, × its range. If 0, it's never extended.*\
|
|
50
50
|
plot_area:\
|
|
51
51
|
border: *# \[line style\]; The plot area's border.*\
|
|
52
52
|
width: 0.08 *# \[float ≥ 0\]; The width, × base size. If 0, no line is drawn.*\
|