@fundar/data-chart-telling 1.1.0 → 1.2.0
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.
- package/CHANGELOG.md +32 -0
- package/README.md +6 -6
- package/dist/configuration/config.svelte.d.ts +1 -1
- package/dist/configuration/config.svelte.js +165 -100
- package/dist/configuration/themes/index.d.ts +5 -1428
- package/dist/index.d.ts +23 -14
- package/dist/index.js +20 -11
- package/dist/layout/base/BasePlotLayout.svelte +115 -50
- package/dist/layout/base/BasePlotLayout.svelte.d.ts +1 -38
- package/dist/layout/coordinates/CoordinatesLayout.svelte +42 -40
- package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +0 -2
- package/dist/layout/coordinates/ProjectionZoom.svelte +48 -0
- package/dist/layout/coordinates/ProjectionZoom.svelte.d.ts +10 -0
- package/dist/layout/coordinates/ZoomedProjection.d.ts +11 -0
- package/dist/layout/coordinates/ZoomedProjection.js +24 -0
- package/dist/layout/coordinates/camera.svelte.js +11 -8
- package/dist/layout/coordinates/projections/argentina.js +1 -1
- package/dist/layout/coordinates/projections/fit.d.ts +1 -1
- package/dist/layout/coordinates/projections/fit.js +1 -1
- package/dist/layout/coordinates/zoom.svelte.d.ts +4 -5
- package/dist/layout/coordinates/zoom.svelte.js +4 -5
- package/dist/layout/facet/FacetLayout.svelte +1 -1
- package/dist/layout/facet/config.js +1 -1
- package/dist/layout/figure/Figure.svelte +2 -0
- package/dist/layout/geometry/GeometryLayout.svelte +14 -9
- package/dist/layout/geometry/GeometryLayout.svelte.d.ts +0 -3
- package/dist/layout/geometry/MarkerOffset.svelte +28 -0
- package/dist/layout/geometry/MarkerOffset.svelte.d.ts +13 -0
- package/dist/layout/grid/GridCell.svelte +6 -8
- package/dist/layout/legend/ContinuousSection.svelte +44 -9
- package/dist/layout/legend/DiscreteBadgeItem.svelte +2 -2
- package/dist/layout/legend/DiscreteSection.svelte +2 -2
- package/dist/layout/legend/DiscreteSymbolIcon.svelte +1 -1
- package/dist/layout/legend/LegendChannels.js +36 -12
- package/dist/layout/legend/LegendLayout.svelte +9 -1
- package/dist/layout/legend/LegendState.svelte.d.ts +4 -0
- package/dist/layout/legend/LegendState.svelte.js +20 -3
- package/dist/layout/legend/SizeSection.svelte +1 -1
- package/dist/layout/margins/PlotMargins.svelte.d.ts +2 -5
- package/dist/layout/margins/PlotMargins.svelte.js +4 -8
- package/dist/layout/plot/Slice.d.ts +5 -1
- package/dist/layout/plot/Slice.js +14 -4
- package/dist/layout/scales/NiceTicks.d.ts +3 -0
- package/dist/layout/scales/NiceTicks.js +4 -0
- package/dist/layout/scales/ScalesLayout.svelte +72 -7
- package/dist/layout/scales/ScalesLayout.svelte.d.ts +5 -0
- package/dist/layout/scales/SveltePlotScale.d.ts +2 -2
- package/dist/layout/scales/SveltePlotScale.js +13 -6
- package/dist/layout/scales/TickLabels.d.ts +32 -0
- package/dist/layout/scales/TickLabels.js +55 -0
- package/dist/layout/styles/StylesLayout.svelte +2 -2
- package/dist/layout/styles/ValueLabels.d.ts +33 -5
- package/dist/layout/styles/ValueLabels.js +80 -21
- package/dist/layout/timeline/TimelineLayout.svelte +1 -1
- package/dist/layout/tooltip/Tooltip.svelte +4 -4
- package/dist/layout/tooltip/Tooltip.svelte.d.ts +4 -4
- package/dist/layout/tooltip/TooltipState.svelte.js +1 -1
- package/dist/markers/MarkerKinds.d.ts +5 -0
- package/dist/markers/MarkerKinds.js +1 -0
- package/dist/markers/area/AreaMarker.svelte +15 -63
- package/dist/markers/arrow/ArrowMarker.svelte +51 -9
- package/dist/markers/bar/BarMarker.svelte +8 -4
- package/dist/markers/bollinger/BollingerMarker.svelte +33 -18
- package/dist/markers/box/BoxMarker.svelte +40 -9
- package/dist/markers/delta/Delta.js +1 -1
- package/dist/markers/dot/DotMarker.svelte +24 -27
- package/dist/markers/image/ImageMarker.svelte +17 -12
- package/dist/markers/inset/InsetMarker.svelte +2 -2
- package/dist/markers/line/LineMarker.svelte +1 -0
- package/dist/markers/link/LinkMarker.svelte +174 -29
- package/dist/markers/regression/RegressionMarker.svelte +16 -33
- package/dist/markers/rule/RuleMarker.svelte +9 -3
- package/dist/markers/text/Declutter.d.ts +4 -0
- package/dist/markers/text/Declutter.js +26 -11
- package/dist/markers/text/TextMarker.svelte +91 -48
- package/dist/markers/tick/TickMarker.svelte +27 -25
- package/dist/markers/utils/MarkerChannels.d.ts +24 -0
- package/dist/markers/utils/MarkerChannels.js +42 -7
- package/dist/markers/utils/RowOffset.d.ts +23 -0
- package/dist/markers/utils/RowOffset.js +23 -0
- package/dist/markers/utils/RowOffsetMarks.svelte +30 -0
- package/dist/markers/utils/RowOffsetMarks.svelte.d.ts +33 -0
- package/dist/markers/utils/RowStroke.d.ts +31 -0
- package/dist/markers/utils/RowStroke.js +28 -0
- package/dist/markers/violin/ViolinMarker.svelte +75 -0
- package/dist/markers/violin/ViolinMarker.svelte.d.ts +7 -0
- package/dist/markers/violin/ViolinProfiles.d.ts +29 -0
- package/dist/markers/violin/ViolinProfiles.js +55 -0
- package/dist/markers/waffle/WaffleMarker.svelte +17 -37
- package/dist/phases/Pipeline.d.ts +5 -0
- package/dist/phases/Pipeline.js +5 -0
- package/dist/phases/data/DataPhase.js +3 -3
- package/dist/phases/data/PlotAxes.d.ts +10 -0
- package/dist/phases/data/PlotAxes.js +14 -1
- package/dist/phases/facet/FacetPanels.d.ts +1 -0
- package/dist/phases/facet/FacetPanels.js +1 -0
- package/dist/phases/mapping/MappingPhase.js +1 -1
- package/dist/phases/markers/MarkersPhase.js +2 -1
- package/dist/phases/scales/CategoryOrder.d.ts +23 -0
- package/dist/phases/scales/CategoryOrder.js +73 -0
- package/dist/phases/scales/ScalesPhase.js +21 -7
- package/dist/phases/sharedScales/SharedScalesPhase.d.ts +3 -2
- package/dist/phases/sharedScales/SharedScalesPhase.js +5 -2
- package/dist/phases/statistics/Statistics.d.ts +10 -6
- package/dist/phases/statistics/Statistics.js +20 -10
- package/dist/phases/statistics/StatisticsPhase.js +7 -2
- package/dist/phases/statistics/methods/BollingerStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/BollingerStatistic.js +13 -11
- package/dist/phases/statistics/methods/BoxStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/BoxStatistic.js +14 -12
- package/dist/phases/statistics/methods/Density2dStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/Density2dStatistic.js +13 -11
- package/dist/phases/statistics/methods/DensityStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/DensityStatistic.js +11 -9
- package/dist/phases/statistics/methods/DeviationStatistic.d.ts +8 -0
- package/dist/phases/statistics/methods/DeviationStatistic.js +111 -0
- package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/MovingAverageStatistic.js +11 -9
- package/dist/phases/statistics/methods/RegressionStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/RegressionStatistic.js +16 -14
- package/dist/phases/transforms/ProcessedPositions.js +1 -1
- package/dist/phases/transforms/TransformsPhase.js +49 -3
- package/dist/phases/transforms/ValueSelection.d.ts +30 -0
- package/dist/phases/transforms/ValueSelection.js +53 -0
- package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte +5 -2
- package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{heatmap → correlation/heatmap}/defaults.d.ts +2 -2
- package/dist/plots/{heatmap → correlation/heatmap}/defaults.js +5 -5
- package/dist/plots/{heatmap → correlation/heatmap}/markers.d.ts +4 -4
- package/dist/plots/{heatmap → correlation/heatmap}/markers.js +3 -3
- package/dist/plots/{scatter → correlation/scatter}/Plot.svelte +5 -2
- package/dist/plots/{scatter → correlation/scatter}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{scatter → correlation/scatter}/defaults.d.ts +2 -2
- package/dist/plots/{scatter → correlation/scatter}/defaults.js +4 -4
- package/dist/plots/{scatter → correlation/scatter}/markers.d.ts +4 -4
- package/dist/plots/{scatter → correlation/scatter}/markers.js +3 -3
- package/dist/plots/{box → distribution/box}/BoxSummaries.d.ts +2 -2
- package/dist/plots/{box → distribution/box}/BoxSummaries.js +6 -6
- package/dist/plots/{box → distribution/box}/Plot.svelte +2 -2
- package/dist/plots/{box → distribution/box}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{box → distribution/box}/defaults.d.ts +2 -2
- package/dist/plots/{box → distribution/box}/defaults.js +1 -1
- package/dist/plots/{box → distribution/box}/markers.d.ts +2 -2
- package/dist/plots/distribution/density/Plot.svelte +45 -0
- package/dist/plots/distribution/density/Plot.svelte.d.ts +26 -0
- package/dist/plots/distribution/density/defaults.d.ts +9 -0
- package/dist/plots/distribution/density/defaults.js +29 -0
- package/dist/plots/distribution/density/markers.d.ts +9 -0
- package/dist/plots/distribution/density/markers.js +42 -0
- package/dist/plots/{histogram → distribution/histogram}/Plot.svelte +2 -2
- package/dist/plots/{histogram → distribution/histogram}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{histogram → distribution/histogram}/defaults.d.ts +2 -2
- package/dist/plots/{histogram → distribution/histogram}/defaults.js +3 -3
- package/dist/plots/{histogram → distribution/histogram}/markers.d.ts +3 -3
- package/dist/plots/{histogram → distribution/histogram}/markers.js +5 -5
- package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte +5 -2
- package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{pyramid → distribution/pyramid}/defaults.d.ts +2 -2
- package/dist/plots/{pyramid → distribution/pyramid}/defaults.js +6 -6
- package/dist/plots/{pyramid → distribution/pyramid}/markers.d.ts +4 -4
- package/dist/plots/{pyramid → distribution/pyramid}/markers.js +6 -6
- package/dist/plots/distribution/violin/Plot.svelte +45 -0
- package/dist/plots/distribution/violin/Plot.svelte.d.ts +26 -0
- package/dist/plots/distribution/violin/defaults.d.ts +10 -0
- package/dist/plots/distribution/violin/defaults.js +58 -0
- package/dist/plots/distribution/violin/markers.d.ts +10 -0
- package/dist/plots/distribution/violin/markers.js +71 -0
- package/dist/plots/{area → evolution/area}/Plot.svelte +2 -2
- package/dist/plots/{area → evolution/area}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/defaults.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/defaults.js +2 -0
- package/dist/plots/{area → evolution/area}/markers.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/markers.js +1 -1
- package/dist/plots/{line → evolution/line}/Plot.svelte +2 -2
- package/dist/plots/{line → evolution/line}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{line → evolution/line}/defaults.d.ts +2 -2
- package/dist/plots/{line → evolution/line}/defaults.js +2 -0
- package/dist/plots/{line → evolution/line}/markers.d.ts +11 -8
- package/dist/plots/{line → evolution/line}/markers.js +6 -4
- package/dist/plots/evolution/slope/Plot.svelte +42 -0
- package/dist/plots/evolution/slope/Plot.svelte.d.ts +26 -0
- package/dist/plots/evolution/slope/defaults.d.ts +8 -0
- package/dist/plots/evolution/slope/defaults.js +31 -0
- package/dist/plots/evolution/slope/markers.d.ts +16 -0
- package/dist/plots/evolution/slope/markers.js +79 -0
- package/dist/plots/evolution/sparkline/Plot.svelte +45 -0
- package/dist/plots/evolution/sparkline/Plot.svelte.d.ts +26 -0
- package/dist/plots/evolution/sparkline/defaults.d.ts +7 -0
- package/dist/plots/evolution/sparkline/defaults.js +23 -0
- package/dist/plots/evolution/sparkline/markers.d.ts +7 -0
- package/dist/plots/evolution/sparkline/markers.js +56 -0
- package/dist/plots/{geo → map/geo}/Core.svelte +11 -10
- package/dist/plots/{geo → map/geo}/Core.svelte.d.ts +1 -1
- package/dist/plots/map/geo/GeoFeatures.svelte.d.ts +9 -0
- package/dist/plots/map/geo/GeoFeatures.svelte.js +55 -0
- package/dist/plots/map/geo/GeoGeometry.d.ts +27 -0
- package/dist/plots/map/geo/GeoGeometry.js +142 -0
- package/dist/plots/map/geo/GeoSegments.d.ts +16 -0
- package/dist/plots/map/geo/GeoSegments.js +23 -0
- package/dist/plots/{geo → map/geo}/Plot.svelte +10 -10
- package/dist/plots/{geo → map/geo}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/defaults.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/defaults.js +1 -1
- package/dist/plots/{geo → map/geo}/phases/data.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/data.js +7 -6
- package/dist/plots/{geo → map/geo}/phases/hover.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/hover.js +2 -2
- package/dist/plots/{geo → map/geo}/phases/markers.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/markers.js +6 -10
- package/dist/plots/{geo → map/geo}/phases/scales.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/phases/scales.js +28 -12
- package/dist/plots/{geo → map/geo}/phases/tooltip.d.ts +1 -1
- package/dist/plots/map/geo/phases/tooltip.js +5 -0
- package/dist/plots/{geo → map/geo}/slices.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/slices.js +2 -2
- package/dist/plots/{bar → ranking/bar}/Plot.svelte +2 -2
- package/dist/plots/{bar → ranking/bar}/Plot.svelte.d.ts +2 -2
- package/dist/plots/ranking/bar/defaults.d.ts +16 -0
- package/dist/plots/{bar → ranking/bar}/defaults.js +15 -9
- package/dist/plots/{bar → ranking/bar}/markers.d.ts +8 -8
- package/dist/plots/{bar → ranking/bar}/markers.js +8 -17
- package/dist/plots/ranking/bullet/Plot.svelte +42 -0
- package/dist/plots/ranking/bullet/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/bullet/defaults.d.ts +8 -0
- package/dist/plots/ranking/bullet/defaults.js +24 -0
- package/dist/plots/ranking/bullet/markers.d.ts +10 -0
- package/dist/plots/ranking/bullet/markers.js +90 -0
- package/dist/plots/ranking/cleveland/ClevelandConnector.d.ts +48 -0
- package/dist/plots/ranking/cleveland/ClevelandConnector.js +140 -0
- package/dist/plots/ranking/cleveland/ClevelandMarkers.d.ts +33 -0
- package/dist/plots/ranking/cleveland/ClevelandMarkers.js +375 -0
- package/dist/plots/ranking/cleveland/ClevelandRanges.d.ts +31 -0
- package/dist/plots/ranking/cleveland/ClevelandRanges.js +116 -0
- package/dist/plots/ranking/cleveland/Plot.svelte +45 -0
- package/dist/plots/ranking/cleveland/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/cleveland/defaults.d.ts +13 -0
- package/dist/plots/ranking/cleveland/defaults.js +66 -0
- package/dist/plots/ranking/dumbbell/Plot.svelte +45 -0
- package/dist/plots/ranking/dumbbell/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/dumbbell/defaults.d.ts +9 -0
- package/dist/plots/ranking/dumbbell/defaults.js +19 -0
- package/dist/plots/ranking/forest/Plot.svelte +42 -0
- package/dist/plots/ranking/forest/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/forest/defaults.d.ts +11 -0
- package/dist/plots/ranking/forest/defaults.js +20 -0
- package/dist/plots/ranking/lollipop/Plot.svelte +45 -0
- package/dist/plots/ranking/lollipop/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/lollipop/defaults.d.ts +9 -0
- package/dist/plots/ranking/lollipop/defaults.js +18 -0
- package/dist/plots/utils/RowNumbers.d.ts +16 -0
- package/dist/plots/utils/RowNumbers.js +24 -0
- package/dist/plots/utils/gaps.js +1 -1
- package/dist/plots/utils/segments.js +1 -1
- package/dist/types/configuration/styling.d.ts +276 -143
- package/dist/types/layout/coordinates.d.ts +5 -4
- package/dist/types/layout/legend.d.ts +21 -5
- package/dist/types/layout/plot.d.ts +44 -1
- package/dist/types/layout/scales.d.ts +39 -7
- package/dist/types/layout/statistics/deviation.d.ts +40 -0
- package/dist/types/layout/statistics/index.d.ts +7 -2
- package/dist/types/layout/styles/base.d.ts +18 -0
- package/dist/types/layout/styles/bullet.d.ts +25 -0
- package/dist/types/layout/styles/connector.d.ts +98 -0
- package/dist/types/layout/styles/curve.d.ts +11 -0
- package/dist/types/layout/styles/frame.d.ts +17 -0
- package/dist/types/layout/styles/gaps.d.ts +12 -0
- package/dist/types/layout/styles/geo.d.ts +55 -0
- package/dist/types/layout/styles/index.d.ts +8 -0
- package/dist/types/layout/styles/index.js +8 -0
- package/dist/types/layout/styles/values.d.ts +47 -0
- package/dist/types/layout/timeline.d.ts +5 -2
- package/dist/types/layout/tooltip.d.ts +6 -2
- package/dist/types/markers/axis/area.d.ts +2 -2
- package/dist/types/markers/axis/arrow.d.ts +3 -0
- package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +2 -1
- package/dist/types/markers/axis/bar.d.ts +1 -1
- package/dist/types/markers/axis/box.d.ts +5 -0
- package/dist/types/markers/axis/difference.d.ts +2 -2
- package/dist/types/markers/axis/image.d.ts +3 -2
- package/dist/types/markers/axis/line.d.ts +2 -0
- package/dist/types/markers/axis/rule.d.ts +9 -0
- package/dist/types/markers/axis/trail.d.ts +2 -3
- package/dist/types/markers/axis/violin.d.ts +25 -0
- package/dist/types/markers/basic/dot.d.ts +3 -2
- package/dist/types/markers/basic/text.d.ts +13 -3
- package/dist/types/markers/channels/commonMarkerConfig.d.ts +7 -3
- package/dist/types/markers/channels/commonMarkerConfigWithRowOffset.d.ts +13 -0
- package/dist/types/markers/common.d.ts +1 -1
- package/dist/types/markers/common.js +1 -0
- package/dist/types/markers/geo/link.d.ts +5 -1
- package/dist/types/phases/index.d.ts +1 -1
- package/dist/types/phases/scales/phase.d.ts +5 -1
- package/dist/types/phases/state.d.ts +15 -2
- package/dist/types/phases/statistics/source.d.ts +3 -1
- package/dist/types/phases/transforms/phase.d.ts +22 -0
- package/dist/types/plots/{heatmap → correlation/heatmap}/props.d.ts +6 -6
- package/dist/types/plots/{heatmap → correlation/heatmap}/state.d.ts +4 -4
- package/dist/types/plots/{scatter → correlation/scatter}/props.d.ts +6 -6
- package/dist/types/plots/{scatter → correlation/scatter}/state.d.ts +2 -2
- package/dist/types/plots/{box → distribution/box}/props.d.ts +6 -6
- package/dist/types/plots/{box → distribution/box}/state.d.ts +3 -3
- package/dist/types/plots/distribution/density/props.d.ts +23 -0
- package/dist/types/plots/distribution/density/state.d.ts +6 -0
- package/dist/types/plots/{histogram → distribution/histogram}/props.d.ts +7 -7
- package/dist/types/plots/{histogram → distribution/histogram}/state.d.ts +2 -2
- package/dist/types/plots/distribution/histogram/state.js +1 -0
- package/dist/types/plots/{pyramid → distribution/pyramid}/props.d.ts +6 -6
- package/dist/types/plots/distribution/pyramid/props.js +1 -0
- package/dist/types/plots/{pyramid → distribution/pyramid}/state.d.ts +3 -3
- package/dist/types/plots/distribution/pyramid/state.js +1 -0
- package/dist/types/plots/distribution/violin/props.d.ts +23 -0
- package/dist/types/plots/distribution/violin/props.js +1 -0
- package/dist/types/plots/distribution/violin/state.d.ts +6 -0
- package/dist/types/plots/distribution/violin/state.js +1 -0
- package/dist/types/plots/{area → evolution/area}/props.d.ts +6 -6
- package/dist/types/plots/evolution/area/props.js +1 -0
- package/dist/types/plots/{area → evolution/area}/state.d.ts +2 -2
- package/dist/types/plots/evolution/area/state.js +1 -0
- package/dist/types/plots/evolution/line/props.d.ts +10 -0
- package/dist/types/plots/evolution/line/props.js +1 -0
- package/dist/types/plots/{line → evolution/line}/state.d.ts +3 -3
- package/dist/types/plots/evolution/line/state.js +1 -0
- package/dist/types/plots/evolution/slope/props.d.ts +5 -0
- package/dist/types/plots/evolution/slope/props.js +1 -0
- package/dist/types/plots/evolution/slope/state.d.ts +5 -0
- package/dist/types/plots/evolution/slope/state.js +1 -0
- package/dist/types/plots/evolution/sparkline/props.d.ts +5 -0
- package/dist/types/plots/evolution/sparkline/props.js +1 -0
- package/dist/types/plots/evolution/sparkline/state.d.ts +5 -0
- package/dist/types/plots/evolution/sparkline/state.js +1 -0
- package/dist/types/plots/{geo → map/geo}/props.d.ts +8 -8
- package/dist/types/plots/map/geo/props.js +1 -0
- package/dist/types/plots/{geo → map/geo}/state.d.ts +18 -11
- package/dist/types/plots/map/geo/state.js +1 -0
- package/dist/types/plots/props.d.ts +1 -1
- package/dist/types/plots/{bar → ranking/bar}/props.d.ts +6 -6
- package/dist/types/plots/ranking/bar/props.js +1 -0
- package/dist/types/plots/{bar → ranking/bar}/state.d.ts +2 -2
- package/dist/types/plots/ranking/bar/state.js +1 -0
- package/dist/types/plots/ranking/bullet/props.d.ts +22 -0
- package/dist/types/plots/ranking/bullet/props.js +1 -0
- package/dist/types/plots/ranking/bullet/state.d.ts +5 -0
- package/dist/types/plots/ranking/bullet/state.js +1 -0
- package/dist/types/plots/ranking/cleveland/props.d.ts +10 -0
- package/dist/types/plots/ranking/cleveland/props.js +1 -0
- package/dist/types/plots/ranking/cleveland/state.d.ts +49 -0
- package/dist/types/plots/ranking/cleveland/state.js +1 -0
- package/dist/types/plots/ranking/dumbbell/props.d.ts +10 -0
- package/dist/types/plots/ranking/dumbbell/props.js +1 -0
- package/dist/types/plots/ranking/dumbbell/state.d.ts +5 -0
- package/dist/types/plots/ranking/dumbbell/state.js +1 -0
- package/dist/types/plots/ranking/forest/props.d.ts +23 -0
- package/dist/types/plots/ranking/forest/props.js +1 -0
- package/dist/types/plots/ranking/forest/state.d.ts +5 -0
- package/dist/types/plots/ranking/forest/state.js +1 -0
- package/dist/types/plots/ranking/lollipop/props.d.ts +10 -0
- package/dist/types/plots/ranking/lollipop/props.js +1 -0
- package/dist/types/plots/ranking/lollipop/state.d.ts +5 -0
- package/dist/types/plots/ranking/lollipop/state.js +1 -0
- package/dist/types/plots/segments/common.d.ts +4 -1
- package/dist/utils/OpacityScale.d.ts +14 -0
- package/dist/utils/OpacityScale.js +43 -0
- package/dist/utils/{symbol.d.ts → SymbolPath.d.ts} +0 -12
- package/dist/utils/{symbol.js → SymbolPath.js} +0 -24
- package/dist/utils/SymbolScale.d.ts +18 -0
- package/dist/utils/SymbolScale.js +29 -0
- package/dist/utils/color/ColorRamp.d.ts +27 -0
- package/dist/utils/color/ColorRamp.js +120 -0
- package/dist/utils/color/CssColor.d.ts +19 -0
- package/dist/utils/color/CssColor.js +114 -0
- package/dist/utils/color/Palette.d.ts +21 -0
- package/dist/utils/color/Palette.js +52 -0
- package/dist/utils/color/index.d.ts +11 -3
- package/dist/utils/color/index.js +14 -3
- package/dist/utils/grouping.js +1 -1
- package/docs/architecture.md +1 -1
- package/docs/chrome.md +2 -2
- package/docs/composer.md +2 -2
- package/docs/concepts.md +1 -1
- package/docs/development.md +1 -1
- package/docs/facets.md +3 -3
- package/docs/getting-started.md +2 -2
- package/docs/legend.md +13 -11
- package/docs/markers.md +29 -27
- package/docs/plots/correlation/heatmap.md +26 -0
- package/docs/plots/correlation/scatter.md +35 -0
- package/docs/plots/distribution/box.md +28 -0
- package/docs/plots/distribution/density.md +26 -0
- package/docs/plots/distribution/histogram.md +33 -0
- package/docs/plots/distribution/pyramid.md +31 -0
- package/docs/plots/distribution/violin.md +35 -0
- package/docs/plots/evolution/area.md +32 -0
- package/docs/plots/evolution/line.md +93 -0
- package/docs/plots/evolution/slope.md +39 -0
- package/docs/plots/evolution/sparkline.md +34 -0
- package/docs/plots/ranking/bar.md +59 -0
- package/docs/plots/ranking/bullet.md +37 -0
- package/docs/plots/ranking/cleveland.md +54 -0
- package/docs/plots/ranking/dumbbell.md +39 -0
- package/docs/plots/ranking/forest.md +40 -0
- package/docs/plots/ranking/lollipop.md +39 -0
- package/docs/plots.md +22 -280
- package/docs/scales.md +30 -24
- package/docs/styles-and-segments.md +24 -21
- package/docs/theming.md +23 -20
- package/docs/timeline.md +3 -3
- package/docs/tooltip-and-hover.md +10 -10
- package/docs/transforms-and-statistics.md +13 -12
- package/examples/BarValues.svelte +1 -1
- package/examples/Box.svelte +1 -1
- package/examples/Bullet.svelte +17 -0
- package/examples/Chrome.svelte +1 -1
- package/examples/ChromeOrder.svelte +1 -1
- package/examples/Cleveland.svelte +15 -0
- package/examples/Composer.svelte +2 -2
- package/examples/CustomTooltip.svelte +1 -1
- package/examples/Density.svelte +7 -0
- package/examples/Dumbbell.svelte +16 -0
- package/examples/Facets.svelte +1 -1
- package/examples/FacetsCarousel.svelte +1 -1
- package/examples/FacetsRowsCols.svelte +1 -1
- package/examples/FirstPlot.svelte +1 -1
- package/examples/Forest.svelte +17 -0
- package/examples/Gaps.svelte +2 -2
- package/examples/GroupedBars.svelte +1 -1
- package/examples/Heatmap.svelte +3 -3
- package/examples/HeatmapSegments.svelte +8 -8
- package/examples/Histogram.svelte +1 -1
- package/examples/HorizontalBars.svelte +1 -1
- package/examples/LegendSections.svelte +1 -1
- package/examples/LegendToggle.svelte +1 -1
- package/examples/LineByRegion.svelte +1 -1
- package/examples/LineDates.svelte +1 -1
- package/examples/LineStep.svelte +16 -0
- package/examples/LineStepSegment.svelte +18 -0
- package/examples/Lollipop.svelte +17 -0
- package/examples/Markers.svelte +1 -1
- package/examples/MovingAverage.svelte +1 -1
- package/examples/Pyramid.svelte +9 -2
- package/examples/Regression.svelte +2 -2
- package/examples/ResponsiveLine.svelte +1 -1
- package/examples/Scales.svelte +1 -1
- package/examples/Scatter.svelte +2 -2
- package/examples/SegmentHighlight.svelte +1 -1
- package/examples/Segments.svelte +1 -1
- package/examples/SegmentsBySeries.svelte +1 -1
- package/examples/Slope.svelte +17 -0
- package/examples/Sparkline.svelte +14 -0
- package/examples/StackedArea.svelte +1 -1
- package/examples/StackedBars.svelte +1 -1
- package/examples/TimelinePlayer.svelte +1 -1
- package/examples/TimelineRule.svelte +1 -1
- package/examples/Tooltip.svelte +1 -1
- package/examples/ValueLabels.svelte +1 -1
- package/examples/Violin.svelte +14 -0
- package/examples/datasets/argentina-chile-trends.ts +34 -0
- package/examples/datasets/commodity-prices.ts +48 -0
- package/examples/datasets/countries-over-time.ts +368 -0
- package/examples/datasets/daily-temperature.ts +121 -0
- package/examples/datasets/earthquakes.ts +977 -0
- package/examples/datasets/flight-routes.ts +29 -0
- package/examples/datasets/height-density.ts +37 -0
- package/examples/datasets/heights.ts +370 -0
- package/examples/datasets/index.ts +24 -0
- package/examples/datasets/inflation-by-region.ts +44 -0
- package/examples/datasets/inflation-ranges.ts +34 -0
- package/examples/datasets/iris-flower.ts +207 -0
- package/examples/datasets/life-expectancy.ts +95 -0
- package/examples/datasets/napoleons-march.ts +182 -0
- package/examples/datasets/penguins.ts +54 -0
- package/examples/datasets/population-by-age-with-gaps.ts +23 -0
- package/examples/datasets/population-by-age.ts +890 -0
- package/examples/datasets/province-population.ts +521 -0
- package/examples/datasets/stock-prices.ts +63 -0
- package/examples/datasets/weather-stations-over-time.ts +31 -0
- package/examples/datasets/weather-stations.ts +22 -0
- package/examples/datasets/wind-vectors.ts +30 -0
- package/examples/datasets/world-temperature.ts +400 -0
- package/llms-full.txt +22 -11
- package/llms.txt +32 -4
- package/package.json +10 -1
- package/dist/plots/bar/defaults.d.ts +0 -9
- package/dist/plots/geo/features.svelte.d.ts +0 -5
- package/dist/plots/geo/features.svelte.js +0 -44
- package/dist/plots/geo/phases/tooltip.js +0 -5
- package/dist/plots/utils/geoAccessors.d.ts +0 -72
- package/dist/plots/utils/geoAccessors.js +0 -220
- package/dist/plots/utils/geoSegments.d.ts +0 -29
- package/dist/plots/utils/geoSegments.js +0 -37
- package/dist/types/layout/styles.d.ts +0 -122
- package/dist/types/markers/axis/curveName.d.ts +0 -2
- package/dist/types/plots/line/props.d.ts +0 -10
- package/dist/utils/color/contrast.d.ts +0 -9
- package/dist/utils/color/contrast.js +0 -40
- package/dist/utils/color/cssColor.d.ts +0 -4
- package/dist/utils/color/cssColor.js +0 -77
- package/dist/utils/color/ramp.d.ts +0 -17
- package/dist/utils/color/ramp.js +0 -110
- package/dist/utils/opacity.d.ts +0 -9
- package/dist/utils/opacity.js +0 -38
- package/examples/data.ts +0 -324
- /package/dist/plots/{box → distribution/box}/markers.js +0 -0
- /package/dist/types/layout/{styles.js → statistics/deviation.js} +0 -0
- /package/dist/types/{markers/axis/curveName.js → layout/styles/base.js} +0 -0
- /package/dist/types/{plots/area/props.js → layout/styles/bullet.js} +0 -0
- /package/dist/types/{plots/area/state.js → layout/styles/connector.js} +0 -0
- /package/dist/types/{plots/bar/props.js → layout/styles/curve.js} +0 -0
- /package/dist/types/{plots/bar/state.js → layout/styles/frame.js} +0 -0
- /package/dist/types/{plots/box/props.js → layout/styles/gaps.js} +0 -0
- /package/dist/types/{plots/box/state.js → layout/styles/geo.js} +0 -0
- /package/dist/types/{plots/geo/props.js → layout/styles/values.js} +0 -0
- /package/dist/types/{plots/geo/state.js → markers/axis/violin.js} +0 -0
- /package/dist/types/{plots/heatmap/props.js → markers/channels/commonMarkerConfigWithRowOffset.js} +0 -0
- /package/dist/types/plots/{histogram → correlation/heatmap}/props.js +0 -0
- /package/dist/types/plots/{heatmap → correlation/heatmap}/state.js +0 -0
- /package/dist/types/plots/{line → correlation/scatter}/props.js +0 -0
- /package/dist/types/plots/{histogram → correlation/scatter}/state.js +0 -0
- /package/dist/types/plots/{pyramid → distribution/box}/props.js +0 -0
- /package/dist/types/plots/{line → distribution/box}/state.js +0 -0
- /package/dist/types/plots/{scatter → distribution/density}/props.js +0 -0
- /package/dist/types/plots/{pyramid → distribution/density}/state.js +0 -0
- /package/dist/types/plots/{scatter/state.js → distribution/histogram/props.js} +0 -0
- /package/dist/{plots/utils → utils}/accessors.d.ts +0 -0
- /package/dist/{plots/utils → utils}/accessors.js +0 -0
package/docs/markers.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
```svelte
|
|
8
8
|
<script lang="ts">
|
|
9
9
|
import { LinePlot } from '@fundar/data-chart-telling';
|
|
10
|
-
import { LIFE } from './
|
|
10
|
+
import { LIFE } from './datasets';
|
|
11
11
|
</script>
|
|
12
12
|
|
|
13
13
|
<!-- Markers add marks to a plot: a hover highlight, a reference rule and a delta between two series. -->
|
|
@@ -45,43 +45,45 @@ Markers draw in array order. Type a markers array with `satisfies AxisBasedMarke
|
|
|
45
45
|
| Field | Meaning |
|
|
46
46
|
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
47
47
|
| `data` | The marker's own rows. Unset, it draws the plot's rows |
|
|
48
|
-
| `x`, `y`, `grouping` | Accessors, when the marker reads other fields than the plot
|
|
48
|
+
| `x`, `y`, `grouping` | Accessors, when the marker reads other fields than the plot (a `bollinger` marker takes the plot's own `x` and `y` when it sets none) |
|
|
49
49
|
| `series` | Draw over one series only (by name) |
|
|
50
50
|
| `scope` | With `series`: `'series'` (default) draws once over the whole series; `'segment'` draws once per [segment](styles-and-segments.md), in its color - a `selectMaxY` marks each segment's own peak |
|
|
51
51
|
| `scales` | The marker's own `color`/`opacity`/`symbol` scales, independent of the plot's |
|
|
52
52
|
| `transforms`, `statistics` | Derive rows for this marker ([Transforms](transforms-and-statistics.md)) |
|
|
53
53
|
| `clip` | Clip to the plot's frame |
|
|
54
|
+
| `dx`, `dy` | Move the marker this many pixels right and down, on a map too. A `dot`, `text` or `image` marker also takes a function of the row, to move each row on its own: `dy: (row) => row.side * 15` |
|
|
54
55
|
| `legend` | Name the marker on the automatic [legend](legend.md) |
|
|
55
56
|
|
|
56
57
|
Many markers also take channel fields (`color`, `fill`, `opacity`, `r`, `symbol`, `weight`, `x1`/`x2`/`y1`/`y2`) and a `styles` object (`StrokeStyle`, `AreaStyle`, `DotStyle` or `FontStyle` depending on the mark).
|
|
57
58
|
|
|
58
59
|
## Catalog for axis-based plots
|
|
59
60
|
|
|
60
|
-
| `type` | Draws
|
|
61
|
-
| -------------------------------------------------------- |
|
|
62
|
-
| `dot` | A point per row; `r`, `color`, `symbol`, `styles` (`DotStyle`)
|
|
63
|
-
| `text` | A label per row; `text` (string or function), `styles` (`FontStyle`), `declutter`, `edgeAware`, `fitMargins`
|
|
64
|
-
| `line` | A line through the rows
|
|
65
|
-
| `rule` | A reference line: `axis: 'x' \| 'y'`, `value` (or a function with `data`), `styles`
|
|
66
|
-
| `tick` | A short tick per row along one axis
|
|
67
|
-
| `bar` | A bar; `rect`, `cell`: rectangles and heatmap cells
|
|
68
|
-
| `rect` | A rectangle from `x1`/`x2`/`y1`/`y2`; `interval` turns `x`/`y` into ranges
|
|
69
|
-
| `area` | A filled area under a curve, or between `y1` and `y2`; `curve`
|
|
70
|
-
| `difference` | The area between two series, colored by which one is on top
|
|
71
|
-
| `arrow` | An arrow from `x1,y1` to `x2,y2`; `bend`, `headAngle`, `headLength`
|
|
72
|
-
| `trail` | A variable-width ribbon along a path, its width set by `r`
|
|
73
|
-
| `delta` | The distance between two series (or a series and a fixed value) at a position, as a line and a label
|
|
74
|
-
| `hull` | The convex hull around a cluster of points
|
|
75
|
-
| `density` | 2D density contour bands
|
|
76
|
-
| `box` | A box plot; sub-marks styled through `bar`, `rule`, `dot`, `tickMedian`, `tickMinMax`
|
|
77
|
-
| `
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
80
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
61
|
+
| `type` | Draws |
|
|
62
|
+
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
63
|
+
| `dot` | A point per row; `r`, `color`, `symbol`, `styles` (`DotStyle`) |
|
|
64
|
+
| `text` | A label per row; `text` (string or function), `styles` (`FontStyle`), `declutter`, `edgeAware`, `fitMargins` |
|
|
65
|
+
| `line` | A line through the rows |
|
|
66
|
+
| `rule` | A reference line: `axis: 'x' \| 'y'`, `value` (or a function with `data`), `styles`; with `data`, `stroke`, `strokeWidth` and `strokeOpacity` also take a field or function per row |
|
|
67
|
+
| `tick` | A short tick per row along one axis |
|
|
68
|
+
| `bar` | A bar; `rect`, `cell`: rectangles and heatmap cells |
|
|
69
|
+
| `rect` | A rectangle from `x1`/`x2`/`y1`/`y2`; `interval` turns `x`/`y` into ranges |
|
|
70
|
+
| `area` | A filled area under a curve, or between `y1` and `y2`; `curve` |
|
|
71
|
+
| `difference` | The area between two series, colored by which one is on top |
|
|
72
|
+
| `arrow` | An arrow from `x1,y1` to `x2,y2`; `bend`, `headAngle`, `headLength`; with `data`, `stroke`, `strokeWidth` and `strokeOpacity` also take a field or function per row |
|
|
73
|
+
| `trail` | A variable-width ribbon along a path, its width set by `r` |
|
|
74
|
+
| `delta` | The distance between two series (or a series and a fixed value) at a position, as a line and a label |
|
|
75
|
+
| `hull` | The convex hull around a cluster of points |
|
|
76
|
+
| `density` | 2D density contour bands |
|
|
77
|
+
| `box` | A box plot; sub-marks styled through `bar`, `rule`, `dot`, `tickMedian`, `tickMinMax`; `thickness` sets its width in pixels, `slot` its share of a band |
|
|
78
|
+
| `violin` | A violin per category of its rows: the mirrored density of `y` (or `x`), `kernel`, `bandwidth`, `trim`, `peak`, `slot`; add a narrow `box` over the same rows for the box inside |
|
|
79
|
+
| `regression`, `bollinger` | A fitted curve, a moving-average band |
|
|
80
|
+
| `waffle` | The value as a grid of unit squares; `unit`, `multiple`, `gap` |
|
|
81
|
+
| `voronoi`, `voronoiMesh`, `delaunayLink`, `delaunayMesh` | Voronoi cells and Delaunay triangulation |
|
|
82
|
+
| `image` | An image per row; `src`, `width`, `height` |
|
|
83
|
+
| `raster` | A field sampled over a rectangle, drawn to a canvas |
|
|
84
|
+
| `brush` | A drag-to-select rectangle with `onbrushstart`, `onbrush`, `onbrushend` |
|
|
85
|
+
| `hover` | The in-plot hover highlight (see below) |
|
|
86
|
+
| `component` | Your own Svelte component (see below) |
|
|
85
87
|
|
|
86
88
|
## Hover highlight
|
|
87
89
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# HeatmapPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
A grid of cells, `x` and `y` being the categories of the columns and rows and `color` the value that colors each cell.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Heatmap.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { HeatmapPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { PENGUIN_COUNTS } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- One cell per island and species, colored by the number of penguins. -->
|
|
16
|
+
<HeatmapPlot width={560} height={360} data={PENGUIN_COUNTS} x="island" y="species" color="count" />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
<!-- /example -->
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
- The color domain spans the whole dataset, so it stays comparable across [facets](../../facets.md).
|
|
24
|
+
- Cell value labels are on by default (`styles.values.show` turns them off).
|
|
25
|
+
- `segments` restyle chosen columns, rows or single cells (see [Styles and segments](../../styles-and-segments.md)).
|
|
26
|
+
- Hover matches one cell at a time.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# ScatterPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
A dot per row.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Scatter.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { ScatterPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { COUNTRIES_AT_2007 } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- Points sized by `r`, colored by `color` and shaped by `symbol`. -->
|
|
16
|
+
<ScatterPlot
|
|
17
|
+
width={720}
|
|
18
|
+
height={420}
|
|
19
|
+
data={COUNTRIES_AT_2007}
|
|
20
|
+
x="gdp"
|
|
21
|
+
y="life"
|
|
22
|
+
r="population"
|
|
23
|
+
color="continent"
|
|
24
|
+
symbol="income"
|
|
25
|
+
/>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
<!-- /example -->
|
|
29
|
+
|
|
30
|
+

|
|
31
|
+
|
|
32
|
+
- `r` sizes the dots (area follows the value; configure with `scales.r`). The legend gets a size section.
|
|
33
|
+
- `symbol` varies the dot shape by category (`scales.symbol`), `opacity` varies transparency, `color` colors by category or by a continuous ramp.
|
|
34
|
+
- A literal number for `r` is a fixed radius in pixels.
|
|
35
|
+
- `dotRadius` defaults come from `scatter.dotRadius` in the configuration.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# BoxPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
Summarizes the values of each series per category as a box: it spans the middle half of the values (25th to 75th percentile), the line across it is the median, the whiskers reach the farthest values within 1.5 times the box's height, and dots mark the values past them. String values on `x` stand the boxes upright; on `y` they lie sideways.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Box.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { BoxPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { HEIGHTS } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- One box per group: quartiles, median, whiskers and outliers of each height distribution. -->
|
|
16
|
+
<BoxPlot width={720} height={400} data={HEIGHTS} x="group" y="height" color="group" />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
<!-- /example -->
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
- `grouping` (or `color`) draws one box per group and category. Groups that share categories draw their boxes on top of each other, so split them with `facet` instead, or color by the category field itself.
|
|
24
|
+
- Categories keep the order the data gives them; `scales.x.domain` (or `y`) orders them.
|
|
25
|
+
- The value axis fits the values without reaching for zero; pin `scales.y.domain` to start it at zero.
|
|
26
|
+
- `scales.x.paddingInner` / `paddingOuter` set how wide the boxes are; the defaults come from `box` in the [configuration](../../theming.md).
|
|
27
|
+
- The tooltip reads one box at a time, not every value inside it: the hovered row carries `category`, `min`, `p25`, `median`, `p75`, `max`, `count` and `outliers`.
|
|
28
|
+
- `segments` restyle whole categories (`areas: [{ x: { from: 'Bus', to: 'Bus' } }]`). A segment that splits one category's values draws two boxes.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# DensityPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
Smooths the rows of each series along one axis into a kernel density estimate, the continuous pair of [HistogramPlot](histogram.md). Give `x` alone for a vertical curve or `y` alone for a horizontal one.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Density.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { DensityPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { HEIGHTS } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- A smoothed distribution per `grouping` value, the continuous pair of a histogram. -->
|
|
16
|
+
<DensityPlot width={720} height={400} data={HEIGHTS} x="height" grouping="group" />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
<!-- /example -->
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
- `grouping` (or `color`) draws one curve per group.
|
|
24
|
+
- `styles={{ mark: 'line' }}` draws lines instead of filled areas; `styles.curve` sets how a curve joins its points.
|
|
25
|
+
- Override the estimate with a `densityX` (or `densityY`) transform: `transforms={[{ type: 'densityX', bandwidth: 2 }]}`. A transform given here is merged over the default one; see [Transforms and statistics](../../transforms-and-statistics.md) for its options.
|
|
26
|
+
- `segments={{ default: [{ styles: { fillOpacity: 0.3 } }] }}` restyles the areas.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# HistogramPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
Bins the rows of each series along one axis and draws the count per bin. Give `x` alone for vertical bars or `y` alone for horizontal bars.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Histogram.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { HistogramPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { HEIGHTS } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- Two overlapping distributions, one per `grouping` value. -->
|
|
16
|
+
<HistogramPlot
|
|
17
|
+
width={720}
|
|
18
|
+
height={400}
|
|
19
|
+
data={HEIGHTS}
|
|
20
|
+
x="height"
|
|
21
|
+
grouping="group"
|
|
22
|
+
segments={{ default: [{ styles: { fillOpacity: 0.7 } }] }}
|
|
23
|
+
/>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
<!-- /example -->
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
- `grouping` (or `color`) draws one histogram per group.
|
|
31
|
+
- Override the default binning with a `binX` (or `binY`) transform: `transforms={[{ type: 'binX', thresholds: 20 }]}`. A transform given here is merged over the default one.
|
|
32
|
+
- `transforms={[{ type: 'stackY' }]}` stacks groups in each bin.
|
|
33
|
+
- `segments={{ default: [{ styles: { fillOpacity: 0.7 } }] }}` makes overlapping groups translucent.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# PyramidPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
Two series mirrored around a shared zero baseline, such as a population pyramid. Categories on `y` give horizontal bars; categories on `x` give vertical ones.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Pyramid.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { PyramidPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { POPULATION_BY_AGE_AT_2022 } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- A population pyramid: one side per `color` value. -->
|
|
16
|
+
<PyramidPlot
|
|
17
|
+
width={720}
|
|
18
|
+
height={400}
|
|
19
|
+
data={POPULATION_BY_AGE_AT_2022}
|
|
20
|
+
x="share"
|
|
21
|
+
y="ageGroup"
|
|
22
|
+
color="sex"
|
|
23
|
+
/>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
<!-- /example -->
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
- `scales.grouping.reverse` swaps which series sits on which side.
|
|
31
|
+
- Hover finds the points sharing the hovered category.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# ViolinPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
Draws, for each category, the density estimate of its values mirrored around the middle of its band, with a box inside: the shape of the distribution that [BoxPlot](box.md) summarizes. Give the category on `x` and the values on `y`, or swap them for horizontal violins.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Violin.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { ViolinPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { IRIS } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- The sepal length of the flowers of each species: its density, mirrored, with a box inside. -->
|
|
16
|
+
<ViolinPlot
|
|
17
|
+
width={720}
|
|
18
|
+
height={400}
|
|
19
|
+
data={IRIS}
|
|
20
|
+
x="species"
|
|
21
|
+
y="sepalLength"
|
|
22
|
+
scales={{ y: { label: 'Sepal length (cm)' } }}
|
|
23
|
+
/>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
<!-- /example -->
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
- `grouping` (or `color`) draws one violin per group inside each category's band, side by side. A category with fewer than two values in a group draws no violin.
|
|
31
|
+
- `styles.kernel` and `styles.bandwidth` set the estimate; Silverman's rule picks each violin's bandwidth when unset.
|
|
32
|
+
- `styles.trim` (default `true`) cuts each violin at its values' own extent. With `false` the tails fade out past it, beyond what the value axis reaches.
|
|
33
|
+
- `styles.scale: 'shared'` draws every violin on one density scale, so their areas compare; the default gives each the same full width.
|
|
34
|
+
- `styles.box: false` leaves the inner box out, and a number sets its width in pixels.
|
|
35
|
+
- Hovering a violin reads the same summary as a box plot: quartiles, whisker ends and the values past them.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# AreaPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
One filled area per series, under the line from `y` to the baseline. Default fill opacity comes from `area.fillOpacity` in the configuration.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/StackedArea.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { AreaPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { AGE_SHARES } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- Each age group's share of the population, stacked with `stackY` so the bands add up to 100%. -->
|
|
16
|
+
<AreaPlot
|
|
17
|
+
width={720}
|
|
18
|
+
height={400}
|
|
19
|
+
data={AGE_SHARES}
|
|
20
|
+
x="year"
|
|
21
|
+
y="share"
|
|
22
|
+
color="ageGroup"
|
|
23
|
+
scales={{ x: { ticks: [1991, 2001, 2010, 2022] } }}
|
|
24
|
+
transforms={[{ type: 'stackY' }]}
|
|
25
|
+
/>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
<!-- /example -->
|
|
29
|
+
|
|
30
|
+

|
|
31
|
+
|
|
32
|
+
`transforms={[{ type: 'stackY' }]}` stacks the series.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# LinePlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
One line per series. Rows with a missing value (`null`, `undefined`, `NaN`) break the line; `styles.gaps` can [bridge the break](../../styles-and-segments.md#gaps).
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/LineDates.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { PRICES } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- A line per commodity over a date axis, with end-of-line labels. -->
|
|
16
|
+
<LinePlot
|
|
17
|
+
width={720}
|
|
18
|
+
height={400}
|
|
19
|
+
data={PRICES}
|
|
20
|
+
x="date"
|
|
21
|
+
y="index"
|
|
22
|
+
color="commodity"
|
|
23
|
+
styles={{ values: { show: true, format: (v, name) => `${name}: ${v}` } }}
|
|
24
|
+
/>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
<!-- /example -->
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
- `styles.values.show` writes a label at the end of each series, with the series name and value. Overlapping labels spread apart automatically and the margin grows to fit them. `styles.values.select` labels another point instead - or besides: `'first'`, `'min'`, `'max'`, or a list such as `['first', 'last']`.
|
|
32
|
+
- Hover finds the points sharing the hovered `x`.
|
|
33
|
+
- With a [`timeline`](../../timeline.md), the line reveals itself up to the current step and interpolates `y` between steps.
|
|
34
|
+
- `styles.curve` joins the points with another curve than the straight one: `'step'`, `'step-after'` and `'step-before'` draw stairs (a step plot), `'monotone-x'`, `'basis'` and `'catmull-rom'` smooth the line. The default is `'auto'` (straight segments), which `line.curve` in the [configuration](../../theming.md) sets for every line. There is no separate step plot: it is this one.
|
|
35
|
+
- `segments` style ranges of a line; `markers` add `delta`, `rule`, `text` and the rest (see [Markers](../../markers.md)).
|
|
36
|
+
|
|
37
|
+
## Step lines
|
|
38
|
+
|
|
39
|
+
A step plot suits a value that holds until something changes it (a rate, a price list, a life table). `styles.curve` takes any svelteplot curve; `'step-after'` holds each value until the next point, `'step-before'` reaches it at the previous one and `'step'` changes halfway.
|
|
40
|
+
|
|
41
|
+
<!-- example: examples/LineStep.svelte -->
|
|
42
|
+
|
|
43
|
+
```svelte
|
|
44
|
+
<script lang="ts">
|
|
45
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
46
|
+
import { LIFE } from './datasets';
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<!-- A step plot is a line plot with a step curve: each life table holds its value until the next one. -->
|
|
50
|
+
<LinePlot
|
|
51
|
+
width={720}
|
|
52
|
+
height={380}
|
|
53
|
+
data={LIFE}
|
|
54
|
+
x="year"
|
|
55
|
+
y="value"
|
|
56
|
+
color="sex"
|
|
57
|
+
scales={{ x: { edgeTicks: true } }}
|
|
58
|
+
styles={{ curve: 'step-after' }}
|
|
59
|
+
/>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
<!-- /example -->
|
|
63
|
+
|
|
64
|
+

|
|
65
|
+
|
|
66
|
+
A segment's own `curve` wins over `styles.curve`, so one stretch of a line can step while the rest stays straight.
|
|
67
|
+
|
|
68
|
+
<!-- example: examples/LineStepSegment.svelte -->
|
|
69
|
+
|
|
70
|
+
```svelte
|
|
71
|
+
<script lang="ts">
|
|
72
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
73
|
+
import { LIFE } from './datasets';
|
|
74
|
+
</script>
|
|
75
|
+
|
|
76
|
+
<!-- A segment sets its own curve: the female line is straight until 1980 and steps from then on. -->
|
|
77
|
+
<LinePlot
|
|
78
|
+
width={720}
|
|
79
|
+
height={380}
|
|
80
|
+
data={LIFE}
|
|
81
|
+
x="year"
|
|
82
|
+
y="value"
|
|
83
|
+
color="sex"
|
|
84
|
+
scales={{ x: { edgeTicks: true } }}
|
|
85
|
+
segments={{
|
|
86
|
+
female: [{ areas: [{ x: { from: 1980 } }], styles: { curve: 'step-after' } }]
|
|
87
|
+
}}
|
|
88
|
+
/>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
<!-- /example -->
|
|
92
|
+
|
|
93
|
+

|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# SlopePlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
A line per series between two positions of a category axis, a dot on each end, to read how every series changed between two moments - and how they changed against one another. Its first and last points are labelled before and after the dots, spread apart where they would overlap. It is a [`LinePlot`](line.md) over a category axis, so any number of positions works, but the plot is made for two.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Slope.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { SlopePlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { AGE_SHARES } from './datasets';
|
|
13
|
+
|
|
14
|
+
const censuses = AGE_SHARES.filter(({ year }) => year === 1991 || year === 2022);
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<!-- Each age group's share of Buenos Aires City's population between two censuses, labelled at both ends. -->
|
|
18
|
+
<SlopePlot
|
|
19
|
+
width={720}
|
|
20
|
+
height={400}
|
|
21
|
+
data={censuses}
|
|
22
|
+
x="year"
|
|
23
|
+
y="share"
|
|
24
|
+
color="ageGroup"
|
|
25
|
+
styles={{ values: { show: true } }}
|
|
26
|
+
/>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
<!-- /example -->
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
- `x` is always a category axis (a point scale, so the first and last positions reach the plot's edges), even for numbers or dates: each distinct value is a position, in the order the data gives them (`scales.x.domain` sets it).
|
|
34
|
+
- `grouping` (or `color`) names the series; the legend toggles them like any other.
|
|
35
|
+
- `styles.values` writes each series' first and last value (`select` picks others: `'first'`, `'last'`, `'min'`, `'max'`). Each label sits out in the margin on a lane, joined to its dot by a connector. The text is `format` of the value and series name.
|
|
36
|
+
- The value axis is hidden, since the labels carry the values; `scales.y.axisDisplay: 'visible'` brings it back. It fits the values without reaching for zero; pin `scales.y.domain` to start it there.
|
|
37
|
+
- The stroke width, dot radius and padding come from `slope` in the [configuration](../../theming.md); `padding` leaves room outside the first and last position. The positions sit at the plot's edges, and the margins grow to fit the labels.
|
|
38
|
+
- `segments` restyle chosen series (`styles: { stroke: { strokeWidth: 4 } }`), as in a line plot.
|
|
39
|
+
- The tooltip reads the position under the pointer, listing every series' value there.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# SparklinePlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
A small line plot to read a trend at a glance: no axes, no legend, a thin line, and a dot on each series' last point with its value beside it. It is a [`LinePlot`](line.md), so it takes the same data, `segments`, gaps and transforms; with `facet` it draws one sparkline per category, the usual way to use it.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Sparkline.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { SparklinePlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { REGION_VALUES } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- One sparkline per region: monthly inflation as a thin line, with its last value beside a dot. -->
|
|
16
|
+
<SparklinePlot
|
|
17
|
+
width={360}
|
|
18
|
+
height={300}
|
|
19
|
+
data={REGION_VALUES}
|
|
20
|
+
x="date"
|
|
21
|
+
y="value"
|
|
22
|
+
facet={{ by: 'region', columns: 1, gap: 4 }}
|
|
23
|
+
/>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
<!-- /example -->
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
- The axes are left out (`scales.x.axisDisplay` and `scales.y.axisDisplay` take `'visible'` back) and so is the legend (`legend: true` shows it). The margins are small; `margins` sets them.
|
|
31
|
+
- The last point's value is `styles.values`: `format` writes its text, `show: false` leaves it out, and `select` labels other points (`'first'`, `'min'`, `'max'`).
|
|
32
|
+
- The y axis fits the values without reaching for zero; pin `scales.y.domain` to compare sparklines on one scale, or share it across facets with `facet.scales: 'shared'`.
|
|
33
|
+
- The line's width and the dot's radius come from `sparkline` in the [configuration](../../theming.md).
|
|
34
|
+
- With a `tooltip` or a `hover` marker the sparkline answers the pointer like a line plot does.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# BarPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
Bars where one axis holds the categories and the other the values. Categories on `x` give vertical bars; categories on `y` give horizontal bars.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/GroupedBars.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { BarPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { PROVINCE_VALUES } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- Vertical bars, grouped by `color`. -->
|
|
16
|
+
<BarPlot
|
|
17
|
+
width={720}
|
|
18
|
+
height={400}
|
|
19
|
+
data={PROVINCE_VALUES}
|
|
20
|
+
x="province"
|
|
21
|
+
y="value"
|
|
22
|
+
color="sex"
|
|
23
|
+
scales={{ y: { domain: [70, 85] } }}
|
|
24
|
+
/>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
<!-- /example -->
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
<!-- example: examples/HorizontalBars.svelte -->
|
|
32
|
+
|
|
33
|
+
```svelte
|
|
34
|
+
<script lang="ts">
|
|
35
|
+
import { BarPlot } from '@fundar/data-chart-telling';
|
|
36
|
+
import { PROVINCE_VALUES } from './datasets';
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<!-- Horizontal bars: the categories go on `y`, the values on `x`. -->
|
|
40
|
+
<BarPlot
|
|
41
|
+
width={720}
|
|
42
|
+
height={400}
|
|
43
|
+
data={PROVINCE_VALUES}
|
|
44
|
+
x="value"
|
|
45
|
+
y="province"
|
|
46
|
+
color="sex"
|
|
47
|
+
scales={{ x: { domain: [70, 85] } }}
|
|
48
|
+
/>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
<!-- /example -->
|
|
52
|
+
|
|
53
|
+

|
|
54
|
+
|
|
55
|
+
- Several series sharing a category sit side by side, each in its slice of the category band. The gap between them is `bar.seriesPadding` in the configuration.
|
|
56
|
+
- `transforms={[{ type: 'stackY' }]}` stacks the series instead. Stacking is always `stackY`, also for horizontal bars, because the value channel is the one stacked.
|
|
57
|
+
- `scales.x.paddingInner` / `paddingOuter` set the spacing between category bands.
|
|
58
|
+
- `styles.values.show` labels each bar; `styles.values.anchor` places the label (`'outside'`, `'start'`, `'middle'`, `'end'`).
|
|
59
|
+
- The tooltip triggers anywhere over a bar's whole band, not just over the visible bar.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# BulletPlot
|
|
2
|
+
|
|
3
|
+
Part of [Plots](../../plots.md).
|
|
4
|
+
|
|
5
|
+
Per category, a bar for its value, a tick for its `target` and bands behind it - the `ranges` - that grade it: a compact way to read a measure against a goal. It is a [`BarPlot`](bar.md) with the references drawn around its bars. Categories on `x` stand the plot upright; on `y` they lie sideways.
|
|
6
|
+
|
|
7
|
+
<!-- example: examples/Bullet.svelte -->
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { BulletPlot } from '@fundar/data-chart-telling';
|
|
12
|
+
import { PROVINCE_LIFE } from './datasets';
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- Female life expectancy at birth by province: the bar, against a target of 80 years, over bands for under 76, 76 to 80 and over 80. -->
|
|
16
|
+
<BulletPlot
|
|
17
|
+
width={720}
|
|
18
|
+
height={400}
|
|
19
|
+
data={PROVINCE_LIFE}
|
|
20
|
+
x="female"
|
|
21
|
+
y="province"
|
|
22
|
+
target={80}
|
|
23
|
+
ranges={[76, 80, 85]}
|
|
24
|
+
scales={{ x: { domain: [70, 85] } }}
|
|
25
|
+
styles={{ values: { show: true } }}
|
|
26
|
+
/>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
<!-- /example -->
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
- `target` is a field of the row, a function of it, or a number the same for every category. A row whose target is not a number has no tick.
|
|
34
|
+
- `ranges` lists the upper bounds of the bands, each a field, a function or a number, in any order. Each band runs from the baseline to its bound; the smallest is the darkest, and a band is drawn over the larger ones.
|
|
35
|
+
- The value axis reaches the bars, the targets and the largest range; pin `scales.x.domain` (or `y`) to start it elsewhere - the bars and bands start at its nearest end.
|
|
36
|
+
- The bar is `barThickness` pixels thick, the bands `rangeWidth` in the colors of `rangeColors`, and the target tick is `targetLength` by `targetWidth` pixels, all from `bullet` in the [configuration](../../theming.md). `styles.bar` (`thickness`), `styles.ranges` (`colors`, `width`) and `styles.target` (`color`, `width`, `length`) override the bar, the bands and the tick for one plot.
|
|
37
|
+
- It takes what a bar plot takes: `styles.values` writes each value (see [Scales](../../scales.md) for `sort`), `segments` restyle the bars of chosen categories, and the tooltip reads the hovered category. It draws one bar per category: for several series, use `facet`.
|