-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A set of native haskell charts. -- -- See https://tonyday567.github.io/chart-unit/index.html for some -- description. @package chart-unit @version 0.3.2 module Chart.Types -- | a Chart has a concrete scale, and combinatory options amount to -- mappend (on top of) and beside type Chart a = (Renderable (Path V2 Double) a) => QDiagram a V2 Double Any -- | an alternative synonym where text is involved. type Chart' a = (Renderable (Path V2 Double) a, Renderable (Text Double) a) => QDiagram a V2 Double Any -- | the rendering aspect (or plane) of the chart. Wrapped to distinguish -- this from a plain XY data Aspect Aspect :: Rect Double -> Aspect [unAspect] :: Aspect -> Rect Double aspect :: Double -> Aspect asquare :: Aspect sixbyfour :: Aspect golden :: Aspect widescreen :: Aspect -- | The concrete nature of a QDiagram, and a desire to scale data and hud -- items naturally, a QChart is mostly a late binding of the Aspect that -- the chart is to be projected on to and the data. data QChart a b QChart :: ((Renderable (Text Double) a, Renderable (Path V2 Double) a) => Aspect -> b -> QDiagram a V2 Double Any) -> Rect Double -> b -> QChart a b [_qChart] :: QChart a b -> (Renderable (Text Double) a, Renderable (Path V2 Double) a) => Aspect -> b -> QDiagram a V2 Double Any [_qXY] :: QChart a b -> Rect Double [_qData] :: QChart a b -> b qXY :: forall a_aho3 b_aho4. Lens' (QChart a_aho3 b_aho4) (Rect Double) qChart :: forall a_aho3 b_aho4. (Renderable (Text Double) a_aho3, Renderable (Path V2 Double) a_aho3) => Getter (QChart a_aho3 b_aho4) (Aspect -> b_aho4 -> QDiagram a_aho3 V2 Double Any) qData :: forall a_aho3 b_aho4. Lens' (QChart a_aho3 b_aho4) b_aho4 data Orientation X :: Orientation Y :: Orientation data Placement AxisLeft :: Placement AxisRight :: Placement AxisTop :: Placement AxisBottom :: Placement data TickStyle TickNone :: TickStyle TickLabels :: [Text] -> TickStyle TickRound :: Int -> TickStyle TickExact :: Int -> TickStyle TickPlaced :: [(Double, Text)] -> TickStyle data Color Color :: Double -> Double -> Double -> Double -> Color [_red] :: Color -> Double [_green] :: Color -> Double [_blue] :: Color -> Double [_aaa] :: Color -> Double color :: Color -> AlphaColour Double uncolor :: AlphaColour Double -> Color opac :: Double -> Color -> Color opacs :: Double -> [Color] -> [Color] palette :: [Color] data AxisConfig AxisConfig :: Double -> Orientation -> Placement -> Double -> Color -> Double -> Color -> Double -> Double -> Double -> Color -> TickStyle -> Double -> Double -> AxisConfig [_axisPad] :: AxisConfig -> Double [_axisOrientation] :: AxisConfig -> Orientation [_axisPlacement] :: AxisConfig -> Placement [_axisHeight] :: AxisConfig -> Double [_axisColor] :: AxisConfig -> Color [_axisMarkSize] :: AxisConfig -> Double [_axisMarkColor] :: AxisConfig -> Color [_axisInsideStrut] :: AxisConfig -> Double [_axisLabelStrut] :: AxisConfig -> Double [_axisTextSize] :: AxisConfig -> Double [_axisTextColor] :: AxisConfig -> Color [_axisTickStyle] :: AxisConfig -> TickStyle [_axisAlignedTextRight] :: AxisConfig -> Double [_axisAlignedTextBottom] :: AxisConfig -> Double axisPad :: Lens' AxisConfig Double axisOrientation :: Lens' AxisConfig Orientation axisPlacement :: Lens' AxisConfig Placement axisHeight :: Lens' AxisConfig Double axisColor :: Lens' AxisConfig Color axisMarkSize :: Lens' AxisConfig Double axisMarkColor :: Lens' AxisConfig Color axisInsideStrut :: Lens' AxisConfig Double axisLabelStrut :: Lens' AxisConfig Double axisTextSize :: Lens' AxisConfig Double axisTextColor :: Lens' AxisConfig Color axisTickStyle :: Lens' AxisConfig TickStyle axisAlignedTextRight :: Lens' AxisConfig Double axisAlignedTextBottom :: Lens' AxisConfig Double data ChartConfig ChartConfig :: Double -> [AxisConfig] -> Maybe (Rect Double) -> Aspect -> Color -> ChartConfig [_chartPad] :: ChartConfig -> Double [_chartAxes] :: ChartConfig -> [AxisConfig] [_chartRange] :: ChartConfig -> Maybe (Rect Double) [_chartAspect] :: ChartConfig -> Aspect [_chartCanvasColor] :: ChartConfig -> Color chartPad :: Lens' ChartConfig Double chartAxes :: Lens' ChartConfig [AxisConfig] chartRange :: Lens' ChartConfig (Maybe (Rect Double)) chartAspect :: Lens' ChartConfig Aspect chartCanvasColor :: Lens' ChartConfig Color data LineConfig LineConfig :: Double -> Color -> LineConfig [_lineSize] :: LineConfig -> Double [_lineColor] :: LineConfig -> Color lineSize :: Lens' LineConfig Double lineColor :: Lens' LineConfig Color data ScatterConfig ScatterConfig :: Double -> Color -> ScatterConfig [_scatterSize] :: ScatterConfig -> Double [_scatterColor] :: ScatterConfig -> Color scatterSize :: Lens' ScatterConfig Double scatterColor :: Lens' ScatterConfig Color data RectConfig RectConfig :: Double -> Color -> Color -> RectConfig [_rectBorderWidth] :: RectConfig -> Double [_rectBorderColor] :: RectConfig -> Color [_rectColor] :: RectConfig -> Color rectBorderWidth :: Lens' RectConfig Double rectBorderColor :: Lens' RectConfig Color rectColor :: Lens' RectConfig Color data ArrowConfig a ArrowConfig :: a -> a -> a -> a -> a -> a -> a -> a -> a -> Color -> ArrowConfig a [_arrowMinHeadSize] :: ArrowConfig a -> a [_arrowMaxHeadSize] :: ArrowConfig a -> a [_arrowHeadSize] :: ArrowConfig a -> a [_arrowMinStaffLength] :: ArrowConfig a -> a [_arrowMaxStaffLength] :: ArrowConfig a -> a [_arrowStaffLength] :: ArrowConfig a -> a [_arrowMinStaffWidth] :: ArrowConfig a -> a [_arrowMaxStaffWidth] :: ArrowConfig a -> a [_arrowStaffWidth] :: ArrowConfig a -> a [_arrowColor] :: ArrowConfig a -> Color arrowMinHeadSize :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowMaxHeadSize :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowHeadSize :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowMinStaffLength :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowMaxStaffLength :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowStaffLength :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowMinStaffWidth :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowMaxStaffWidth :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowStaffWidth :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) a_alLZ arrowColor :: forall a_alLZ. Lens' (ArrowConfig a_alLZ) Color data PixelConfig PixelConfig :: Range Color -> V2 Int -> PixelConfig [_pixelGradient] :: PixelConfig -> Range Color [_pixelGrain] :: PixelConfig -> V2 Int pixelGradient :: Lens' PixelConfig (Range Color) pixelGrain :: Lens' PixelConfig (V2 Int) data TextConfig textPad :: Lens' TextConfig Double textOrientation :: Lens' TextConfig Orientation textPlacement :: Lens' TextConfig Placement textSize :: Lens' TextConfig Double textColor :: Lens' TextConfig Color textRight :: Lens' TextConfig Double textBottom :: Lens' TextConfig Double instance Data.Default.Class.Default Chart.Types.TextConfig instance Data.Default.Class.Default Chart.Types.PixelConfig instance Data.Default.Class.Default (Chart.Types.ArrowConfig GHC.Types.Double) instance Data.Default.Class.Default Chart.Types.RectConfig instance Data.Default.Class.Default Chart.Types.ScatterConfig instance Data.Default.Class.Default Chart.Types.LineConfig instance Data.Default.Class.Default Chart.Types.ChartConfig instance GHC.Show.Show Chart.Types.Color instance GHC.Classes.Eq Chart.Types.Color instance Data.Default.Class.Default Chart.Types.AxisConfig module Chart.Unit scaleX :: Double -> [Point V2 Double] -> [Point V2 Double] scaleY :: Double -> [Point V2 Double] -> [Point V2 Double] blob :: (Floating (N a), Ord (N a), Typeable (N a), HasStyle a, V a ~ V2) => Color -> a -> a line1 :: (Traversable f, R2 r) => LineConfig -> f (r Double) -> Chart b scatter1 :: (Traversable f, R2 r) => ScatterConfig -> f (r Double) -> Chart b -- | rectangles specified using a V4 x y z w where (x,y) is location of -- lower left corner (z,w) is location of upper right corner rect1 :: (Traversable f) => RectConfig -> f (Rect Double) -> Chart b -- | a pixel is a rectangle with a color. pixel1 :: (Traversable f) => f (Rect Double, Color) -> Chart b arrow1 :: (Traversable f) => ArrowConfig Double -> f (V4 Double) -> Chart b -- | convert from an XY to a polymorphic qdiagrams rectangle box :: (Field (N t), N t ~ Double, V t ~ V2, HasOrigin t, Transformable t, TrailLike t) => Rect Double -> t lineChart :: (R2 r, Traversable f) => [LineConfig] -> Aspect -> [f (r Double)] -> Chart a scatterChart :: (R2 r, Traversable f) => [ScatterConfig] -> Aspect -> [f (r Double)] -> Chart a histChart :: (Traversable f) => [RectConfig] -> Aspect -> [f (Rect Double)] -> Chart a -- | arrow lengths and sizes also need to be scaled, and so arrows doesnt -- fit as neatly into the whole scaling idea arrowChart :: (Traversable f) => ArrowConfig Double -> V4 (Range Double) -> f (V4 Double) -> Chart a -- | V4 range of a V4 container rangeV4 :: (Traversable f) => f (V4 Double) -> V4 (Range Double) rangeV42Rect :: V4 (Range Double) -> Rect Double -- | scale a double container of V4s from the current range scaleV4s :: (Traversable f) => V4 (Range Double) -> f (V4 Double) -> f (V4 Double) toPixels :: Rect Double -> (V2 Double -> Double) -> PixelConfig -> [(Rect Double, Color)] rescalePixels :: Rect Double -> [(Rect Double, Color)] -> [(Rect Double, Color)] -- | pixels over an XY using a function pixelf :: PixelConfig -> Aspect -> Rect Double -> (V2 Double -> Double) -> Chart a -- | render with a chart configuration withChart :: (Traversable f, R2 r) => ChartConfig -> (Aspect -> [f (r Double)] -> QDiagram a V2 Double Any) -> [f (r Double)] -> Chart' a axes :: ChartConfig -> Chart' a -- | render a list of qcharts using a common scale combine :: Aspect -> [QChart a b] -> Chart' a fileSvg :: FilePath -> (Double, Double) -> Chart SVG -> IO () bubble :: forall a. (FromInteger (N a), MultiplicativeGroup (N a), RealFloat (N a), Traced a, V a ~ V2) => [a] -> Int -> [V a (N a)] histCompare :: DealOvers -> Histogram -> Histogram -> Chart' a module Chart -- | SVG is simply a token used to identify this rendering backend -- (to aid type inference). data SVG :: * -- | A 4-dimensional vector. data V4 a :: * -> * V4 :: ~a -> ~a -> ~a -> ~a -> V4 a -- | The zipWith4 function takes a function which combines four -- elements, as well as four lists and returns a list of their point-wise -- combination, analogous to zipWith. zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]