chart-svg-0.3.3: Charting library targetting SVGs.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Chart.Svg

Description

Conversion from a chart to SVG.

Synopsis

ChartSvg

data ChartSvg Source #

Specification of a chart ready to be rendered to SVG includes:

  • svg options
  • hud options
  • any extra hud elements beyond the usual options
  • an underlying chart tree.

See Data.Examples for usage.

Instances

Instances details
Monoid ChartSvg Source # 
Instance details

Defined in Chart.Svg

Semigroup ChartSvg Source # 
Instance details

Defined in Chart.Svg

Generic ChartSvg Source # 
Instance details

Defined in Chart.Svg

Associated Types

type Rep ChartSvg :: Type -> Type #

Methods

from :: ChartSvg -> Rep ChartSvg x #

to :: Rep ChartSvg x -> ChartSvg #

type Rep ChartSvg Source # 
Instance details

Defined in Chart.Svg

toChartTree :: ChartSvg -> ChartTree Source #

consume the huds transforming a ChartSvg to a ChartTree

writeChartSvg :: FilePath -> ChartSvg -> IO () Source #

Write to a file.

chartSvg :: ChartSvg -> Text Source #

Render a chart using the supplied svg and hud config.

>>> chartSvg mempty
"<svg width=\"450.0\" height=\"300.0\" viewBox=\"-0.75 -0.5 1.5 1.0\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><style>svg {\n  color-scheme: light dark;\n}\n{\n  .canvas g, .title g, .axisbar g, .ticktext g, .tickglyph g, .ticklines g, .legendContent g text {\n    fill: #0d0d0d;\n  }\n  .ticklines g, .tickglyph g, .legendBorder g {\n    stroke: #0d0d0d;\n  }\n  .legendBorder g {\n    fill: #f0f0f0;\n  }\n}\n@media (prefers-color-scheme:dark) {\n  .canvas g, .title g, .axisbar g, .ticktext g, .tickglyph g, .ticklines g, .legendContent g text {\n    fill: #f0f0f0;\n  }\n  .ticklines g, .tickglyph g, .legendBorder g {\n    stroke: #f0f0f0;\n  }\n  .legendBorder g {\n    fill: #0d0d0d;\n  }\n}</style><g class=\"chart\"></g><g class=\"hud\"></g></svg>"

initialCanvas :: ChartAspect -> ChartTree -> CanvasBox Source #

The initial canvas before applying Huds

>>> initialCanvas (FixedAspect 1.5) (unnamed [RectChart defaultRectStyle [one]])
Rect -0.75 0.75 -0.5 0.5

SVG Options

data SvgOptions Source #

SVG tag options.

>>> defaultSvgOptions
SvgOptions {svgHeight = 300.0, cssOptions = CssOptions {shapeRendering = NoShapeRendering, preferColorScheme = PreferHud, cssExtra = ""}}

Constructors

SvgOptions 

Instances

Instances details
Generic SvgOptions Source # 
Instance details

Defined in Chart.Svg

Associated Types

type Rep SvgOptions :: Type -> Type #

Show SvgOptions Source # 
Instance details

Defined in Chart.Svg

Eq SvgOptions Source # 
Instance details

Defined in Chart.Svg

type Rep SvgOptions Source # 
Instance details

Defined in Chart.Svg

type Rep SvgOptions = D1 ('MetaData "SvgOptions" "Chart.Svg" "chart-svg-0.3.3-HRZp9R2U1Kt6XiFnJzSSfo" 'False) (C1 ('MetaCons "SvgOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "svgHeight") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Double) :*: S1 ('MetaSel ('Just "cssOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CssOptions)))

defaultSvgOptions :: SvgOptions Source #

The official svg options

SVG Style primitives

data CssOptions Source #

css options

>>> defaultCssOptions
CssOptions {shapeRendering = NoShapeRendering, preferColorScheme = PreferHud, cssExtra = ""}

Instances

Instances details
Generic CssOptions Source # 
Instance details

Defined in Chart.Svg

Associated Types

type Rep CssOptions :: Type -> Type #

Show CssOptions Source # 
Instance details

Defined in Chart.Svg

Eq CssOptions Source # 
Instance details

Defined in Chart.Svg

type Rep CssOptions Source # 
Instance details

Defined in Chart.Svg

type Rep CssOptions = D1 ('MetaData "CssOptions" "Chart.Svg" "chart-svg-0.3.3-HRZp9R2U1Kt6XiFnJzSSfo" 'False) (C1 ('MetaCons "CssOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "shapeRendering") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CssShapeRendering) :*: (S1 ('MetaSel ('Just "preferColorScheme") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CssPreferColorScheme) :*: S1 ('MetaSel ('Just "cssExtra") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text))))

defaultCssOptions :: CssOptions Source #

No special shape rendering and default hud responds to user color scheme preferences.

data CssShapeRendering Source #

CSS shape rendering options

Instances

Instances details
Generic CssShapeRendering Source # 
Instance details

Defined in Chart.Svg

Associated Types

type Rep CssShapeRendering :: Type -> Type #

Show CssShapeRendering Source # 
Instance details

Defined in Chart.Svg

Eq CssShapeRendering Source # 
Instance details

Defined in Chart.Svg

type Rep CssShapeRendering Source # 
Instance details

Defined in Chart.Svg

type Rep CssShapeRendering = D1 ('MetaData "CssShapeRendering" "Chart.Svg" "chart-svg-0.3.3-HRZp9R2U1Kt6XiFnJzSSfo" 'False) (C1 ('MetaCons "UseGeometricPrecision" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "UseCssCrisp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoShapeRendering" 'PrefixI 'False) (U1 :: Type -> Type)))

data CssPreferColorScheme Source #

CSS prefer-color-scheme options

Constructors

PreferHud

includes css that switches approriate hud elements between light and dark.

PreferDark 
PreferLight 
PreferNormal 

Instances

Instances details
Generic CssPreferColorScheme Source # 
Instance details

Defined in Chart.Svg

Associated Types

type Rep CssPreferColorScheme :: Type -> Type #

Show CssPreferColorScheme Source # 
Instance details

Defined in Chart.Svg

Eq CssPreferColorScheme Source # 
Instance details

Defined in Chart.Svg

type Rep CssPreferColorScheme Source # 
Instance details

Defined in Chart.Svg

type Rep CssPreferColorScheme = D1 ('MetaData "CssPreferColorScheme" "Chart.Svg" "chart-svg-0.3.3-HRZp9R2U1Kt6XiFnJzSSfo" 'False) ((C1 ('MetaCons "PreferHud" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PreferDark" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PreferLight" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PreferNormal" 'PrefixI 'False) (U1 :: Type -> Type)))

cssShapeRendering :: CssShapeRendering -> Text Source #

CSS shape rendering text snippet

cssPreferColorScheme :: (Colour, Colour) -> CssPreferColorScheme -> Text Source #

CSS prefer-color-scheme text snippet