Chart-1.5.1: A library for generating 2D Charts and Plots

Copyright (c) Tim Docker 2006, 2014 BSD-style (see chart/COPYRIGHT) None Haskell98

Graphics.Rendering.Chart.Drawing

Description

This module contains basic types and functions used for drawing.

Note that Template Haskell is used to derive accessor functions (see `Lens`) for each field of the following data types:

• `PointStyle`

These accessors are not shown in this API documentation. They have the same name as the field, but with the trailing underscore dropped. Hence for data field `f_::F` in type `D`, they have type

```  f :: Control.Lens.Lens' D F
```

Synopsis

# Point Types and Drawing

data PointShape Source

The different shapes a point can have.

Constructors

 PointShapeCircle A circle. PointShapePolygon Int Bool Number of vertices and is right-side-up? PointShapePlus A plus sign. PointShapeCross A cross. PointShapeStar Combination of a cross and a plus. PointShapeArrowHead Double

data PointStyle Source

Abstract data type for the style of a plotted point.

Constructors

 PointStyle Fields_point_color :: AlphaColour DoubleThe color to fill the point with._point_border_color :: AlphaColour DoubleThe color to stroke the outline with._point_border_width :: DoubleThe width of the outline._point_radius :: DoubleThe radius of the tightest surrounding circle of the point._point_shape :: PointShapeThe shape.

Instances

 Default PointStyle Default style to use for points.

Arguments

 :: PointStyle Style to use when rendering the point. -> Point Position of the point to render. -> ChartBackend ()

Draw a single point at the given location.

# Alignments and Paths

alignPath :: (Point -> Point) -> Path -> Path Source

Align the path by applying the given function on all points.

Align the path using the environment's alignment function for coordinates. This is generally useful when filling. See `alignPath` and `getCoordAlignFn`.

Align the path using the environment's alignment function for points. This is generally useful when stroking. See `alignPath` and `getPointAlignFn`.

The points will be aligned by the `getCoordAlignFn`, so that when drawing bitmaps, the edges of the region will fall between pixels.

The points will be aligned by the `getPointAlignFn`, so that when drawing bitmaps, 1 pixel wide lines will be centred on the pixels.

Align the point using the environment's alignment function for coordinates. See `getCoordAlignFn`.

Align the point using the environment's alignment function for points. See `getPointAlignFn`.

strokePointPath :: [Point] -> ChartBackend () Source

Draw lines between the specified points.

fillPointPath :: [Point] -> ChartBackend () Source

Fill the region with the given corners.

# Transformation and Style Helpers

Apply a local rotation. The angle is given in radians.

Apply a local translation.

Apply a local scale.

Apply a local scale on the x-axis.

Apply a local scale on the y-axis.

Changes the `LineStyle` and `FillStyle` to comply with the given `PointStyle`.

# Text Drawing

Draw a line of text that is aligned at a different anchor point. See `drawText`.

Draw a textual label anchored by one of its corners or edges, with rotation. Rotation angle is given in degrees, rotation is performed around anchor point. See `drawText`.

Draw a multi-line textual label anchored by one of its corners or edges, with rotation. Rotation angle is given in degrees, rotation is performed around anchor point. See `drawText`.

Return the bounding rectangle for a text string positioned where it would be drawn by `drawText`. See `textSize`.

Get the width and height of the string when rendered. See `textSize`.

# Style Helpers

The default sequence of colours to use when plotings different data sets in a graph.

Arguments

 :: Double Width of line. -> AlphaColour Double Colour of line. -> LineStyle

Create a solid line style (not dashed).

Arguments

 :: Double Width of line. -> [Double] The dash pattern in device coordinates. -> AlphaColour Double Colour of line. -> LineStyle

Create a dashed line style.

Arguments

 :: Double Radius of circle. -> AlphaColour Double Fill colour. -> PointStyle

Style for filled circle points.

Arguments

 :: Double Radius of circle. -> Double Thickness of line. -> AlphaColour Double -> PointStyle

Style for stroked circle points.

Arguments

 :: Double Radius of circle. -> Int Number of vertices. -> Bool Is right-side-up? -> AlphaColour Double Fill color. -> PointStyle

Style for filled polygon points.

Arguments

 :: Double Radius of circle. -> Double Thickness of line. -> Int Number of vertices. -> Bool Is right-side-up? -> AlphaColour Double Colour of line. -> PointStyle

Style for stroked polygon points.

Arguments

 :: Double Radius of tightest surrounding circle. -> Double Thickness of line. -> AlphaColour Double Color of line. -> PointStyle

Plus sign point style.

Arguments

 :: Double Radius of circle. -> Double Thickness of line. -> AlphaColour Double Color of line. -> PointStyle

Cross point style.

Arguments

 :: Double Radius of circle. -> Double Thickness of line. -> AlphaColour Double Color of line. -> PointStyle

Combination of plus and cross point style.

Arguments

 :: Double Radius of circle. -> Double Rotation (Tau) -> Double Thickness of line. -> AlphaColour Double Color of line. -> PointStyle

Fill style that fill everything this the given colour.