x      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789: ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None 9:;<=DRJSimilar to '(%=)' but takes a state modification instead of a function.!Similar to '(&~)' but works with  and returns it in m.enumFromToN a b n calculates a list from a to b in n steps.*Apply a function if the predicate is true.Type specialised version of .Minmax of a getter in the form  V2 min max . Returns (V2 (-Infinity) Infinity) for empty folds.31(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"$09:;<=?DORT.ZA map from a number (usually between 0 and 1) to a colour. Colour maps are part of the  ", which is used for plots like . Class of things that have an  . Lens onto the  . The  is used to draw the  and render plots like . Traversal over the s in an  ,. There are always an infinite number of s in an  . The   determines the as of the plots in an axis. There are various predifined styles to change the look of the plot.!Class for objects that contain a .Lens onto the .The K is the overall colour of the plot. This is passed to the other styles (, 1 etc.) to give an overall colour for the plot. Alias for .BThis style is applied to any plots made up of lines only (like . plots). This is a less general version of . A version  with access to the current  when  is used.AThis style is applied to any markers in the plot (usually the (). This is a less general version of . A version  with access to the current  when  is used.=This style is applied to any filled areas in a plot (like  or (). This is a less general version of . A version  with access to the current  when   is used.JThis style is applied to text plots. This is a less general version of . A version  with access to the current  when   is used.7This diagram is used as any markers in a plot (like ). The ? will be applied to this marker when the plot gets rendered.!A traversal over all the styles (, ,  and ) of a &. This is a less general version of . A version of  with access to the .:Plot styles are used to style each plot in an axis. Every Axis8 comes with a list of plots styles (contained in the  0) which get applied the plots upon rendering.;You can either change the list of plot styles used with  : stylishAxis = r2Axis &~ do axisStyle .= vividColours linePlot [(1,2) (3,4)] $ key "line 1" linePlot [(1,1) (4,2)] $ key "line 2" Cchange the style for individual plots when changing the plot state. stylishAxis2 = r2Axis &~ do linePlot [(1,2) (3,4)] $ do key "line 1" plotColour .= green linePlot [(1,1) (4,2)] $ do key "line 2" plotColour .= orange ,A plot style is made up of separate styles (, ,  and ) a  and a . When rendering a plot, the  s in an  e are used to style each plot. The lenses can be used to customise each style when adding the plot.$ - the underlying colour of the plot - style used for lines (linePlot, connectingLine in a  scatterPlot) - style used for any area (barPlot, piePlot,  histogramPlot) - style used for markers in  scatterPlot - marker used in  scatterPlot Apply the  from a . KapplyLineStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t  Apply the  from a . MapplyMarkerStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t Apply the 'areaStyle from a . KapplyLineStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t ! Apply the  from a . KapplyTextStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t " Theme using  funColours" with faded fills and thick lines. Ldiagrams/src_Plots_Style_fadedColourPic.svg#diagram=fadedColourPic&width=600# Theme using  funColours with no lines on 'areaStyle. Ldiagrams/src_Plots_Style_vividColourPic.svg#diagram=vividColourPic&width=600$@Theme without any colours, useful for black and white documents. Pdiagrams/src_Plots_Style_blackAndWhitePic.svg#diagram=blackAndWhitePic&width=600% A colourful colour set used for ".&Another colour set, used for #.'Markers which have a filling, used for " and #.'(( markers with varying numbers of prongs.(Make an asterisk with n spokes, each of length l.) A rotated .* A rotated +.+ Filled in + symbol.,'A filled in five sided start of size x..WIndexed traversal over the colours indexed and ordered by their position in the map./`Return the list of colours in the [0,1] range in order. This always includes colours 0 and 1.3!A colour map from black to white. @diagrams/src_Plots_Style_greysBar.svg#diagram=greysBar&width=6004 The magma colour map taken from  https://bids.github.io/colormap/. @diagrams/src_Plots_Style_magmaBar.svg#diagram=magmaBar&width=6005"The inferno colour map taken from  https://bids.github.io/colormap/. Ddiagrams/src_Plots_Style_infernoBar.svg#diagram=infernoBar&width=6006!The plasma colour map taken from  https://bids.github.io/colormap/. Bdiagrams/src_Plots_Style_plasmaBar.svg#diagram=plasmaBar&width=6007"The viridis colour map taken from  https://bids.github.io/colormap/$. This is the default colour map. Ddiagrams/src_Plots_Style_viridisBar.svg#diagram=viridisBar&width=6008 == F  !"#$%&'()*+,-./0123456789:;<=>?@AB0  !"#$%&'()*+,-./012345670 "#$ !%&()*,+'-.01/274563,   !"#$%&'()*+,-./0123456789:;<=>?@ABNone0 DEFGHIJKLMNODEFGHIJK DEFGHKJIONMLDEFGHIJKLMNO(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone !"29;<=DRP/Should the axis be on a logarithmic scale. The  is Q.SClass of things that have an _.T"The way to scale in one direction.UnThe ratio relative to other axis. If no ratios are set, the ratio is not enforced. If at least one is set,  ratios are 1.VPThe mode to determine how to scale the bounds in a direction. Choose between f, g, h or i. is f.WWhether the axis uses R or Q. is Q.XKHow much to extend the bounds over infered bounds. This is ignored if a Z or Y is set.YjThe maximum bound the axis. There are helper functions for setting a minimum bound for a specific axis.  ::  (Axis b  ) ( )  ::  (Axis b  ) ( )  Default is .ZdThe maximum bound the axis. There are helper functions for setting a maximum bound specific axis.   ::  (Axis b  ) ( ) ! ::  (Axis b  ) ( ) " ::  (Axis b 'Polar ) ( )  Default is .[*The size of the rendered axis. Default is  400.\9How much to extend the bounds beyond any inferred bounds._TData type used that concerns everything to do with the size or scale of the axis.`?e>How the axis should be scaled when not all dimensions are set.j2Do not extend the axis beyond the inferred bounds.k#Calculating the bounds for an axis.l#Calculate the scaling for the axis.The result returns:The final bounds for the axisscale to match desired Uscale to match desired KScale transformation using the respective scale coefficients in the vector.*Apply a function if the predicate is true.mLog the number for R, do nothing for Q.nQTransform a point according to the axis scale. Does nothing for linear scales.oPDeform an object according to the axis scale. Does nothing for linear scales.0PQRSTUVWXYZ[\]^_     `abcdefghijkScaling to use for this axis Inferred bounds (from any plots)+Lower and upper bounds to use for this axislaxis scaling options bounding box from the axis plotsmnopqr PRQSTUVWXYZ[\^]_`abcdefghijklmno _efghi`abcd\]^jSTUVWXYZ[PQRmnoklPQRSTUVWXYZ[\]^_      `abcdefghijklmnopqr(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone%&09:;<=?DOQRT7}Information from the # necessary to render a .Class of things that have .Lens onto the .The Z applied to the plot. This gives a way to reference a specific plot in a rendered axis. is .=Whether the plot should be clipped to the bounds of the axes. is .3The legend entries to be used for the current plot. is .GThe transform applied to the plot once it's in the axis coordinates. is .-Whether or not the plot should be shown. The ; of the plot will still affect the inferred axis bounds. is .9Data type for holding information all plots must contain.%Data type for holding a legend entry.yType allowing use of the default legend picture (depending on the plot) or a custom legend picture with access to the .#The position relative to the axis. V2 0 0+ corresponds to the bottom left corner, V2 1 1 is the top right corner.1The anchor used for the object being positioned. V2 0 0+ corresponds to the bottom left corner, V2 1 1 is the top right corner.The direction to extend the  when positioning.A PositionN is a point on an axis together with an anchor and a direction for the gap.$The value of the gap when rendering.)Class of things that have an orientation.'Lens onto the orientation of an object.Pick the first a if the object has  orientation and the second a if the object has a  orientation.8Lens onto whether an object's orientation is horizontal.6Lens onto whether an object's orientation is vertical.dirBetween p q returns the directions from p to q4A tool for aligned one object to another. Positions b around the bounding box of a by translating b.%The picture used in the legend entry."The text used in the legend entry.The order in which the legend entries are rendered. If precedence are equal, they entries are put in the order they are added to the axis. Default is 0.#Make a legend entry with a default  and  0 using the string as the .Add a  to something with  using the  as the  and a $. Here are some typical examples:  ::  ->  ( ( ScatterPlot v n) b) ()  ::  ->  ( b v n) ()  ::  ->  ( b v n) () 3If you only care about the name of the legend, use .Add a  to something with $. Here are some typical examples:  ::  b v n ->  ( ( ScatterPlot v n) b) ()  ::  b v n ->  ( b v n) () 3If you only care about the name of the legend, use .Move origin by applying to  plotTransform.A D with a concrete style. This is suitable for being rendered with , and get extract the legend entries with styledPlotLegend.You can make a  with  A wrapped up , used to store plots in an Axis.&A parameterised plot, together with a L. This type has an instance of many classes for modifying specific plots.A  with modifications to a .$Class of objects that can be hidden.<Lens onto whether an object should be visible when rendered.The opposite of .,Class defining how plots should be rendered.Render a plot according to the } , using the .$The default legend picture when the  is .XScale a number by log10-ing it and linearly scaling it so it's within the same range./Apply log scaling and the transform to a point.Set  to  for the given setter.   minorTicks ::  (Axis b v n) ()  (xAxis .  gridLines) ::  (Axis b v n) () Set  to  for the given setter.  minorGridLines ::  (Axis b v n) ()   colourBar ::  (Axis b v n) () Make a  with  .Lens onto the raw  inside a .The modifications to the  and  in a . Prism for a .CTraversal over the dynamic plot without the Plotable constraint  has.The modifications to the  and  in a .qTraversal over a raw plot of a styled plot. The type of the plot must match for the traversal to be succesful.Give a  a concrete . Render a  given an and }.|Get the legend rendered entries from a single styled plot. The resulting entries are in no particular order. See also .*Render a list of legend entries, in order.}~ !"#$% "(z-order, legend pic, legend text) [(legend pic, legend text)]_}~_}~^}~ !"#$%(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone09:;<=DORT Class of things with both   and .Both   and  together.#Class of things that have a single .Lens onto the  of something.GThe function used to place ticks for this axis, given the result of   and the bounds of the axis. Default is linearMinorTicks 3.-Alignment of the minor ticks. Choose between  (default), ,  or .!The total length the minor ticks. Default is 3.)The style used to render the minor ticks. Default is & 0.4  (subject to change).!The small ticks on the axis line.Class of things that have a  .Lens onto the   of something. The function used to place ticks for this axis, given the bounds of the axis. The result of these major ticks are also used as guides for , MajorGridLines and MinorGridLines. Default is linearMinorTicks 5. -Alignment of the major ticks. Choose between  (default), ,  or . !The total length the major ticks. Default is 7. )The style used to render the major ticks. Default is & 0.6  (subject to change). The big ticks on the axis line.5Set the portion of the tick above and below the axis.7Set the tick type depending on the axis line position.  centreTick for  middleAxis,  insideTick for everything else.cSet the tick to be in the centre of the axis with total length of the corresponding tick length. Synonym for .(Align the ticks to be inside a box axis.)Align the ticks to be outside a box axis.3Traversal over both major and minor tick alignment.0Traversal over both major and minor tick styles.<Traversal over the visibility of both major and minor ticks. Hides the MinorN ticks when trying to render something. This can be used on multiple types:  :: Axis b c n -> Axis b c n  ::  SingleAxis b v n ->  SingleAxis b v n  ::  v n ->  v n  ::  v n ->  v n NSetter over the final positions the major ticks. This is not as general as   because you don't have access to the bounds but it can be useful when you know exactly what ticks you want to add or modify existing tick positions.NSetter over the final positions the major ticks. This is not as general as  because you don't have access to the bounds but it can be useful when you know exactly what ticks you want to add or modify existing tick positions.4Ticks whose value ends in 1, 0.5, 0.25, 0.2 (*10^n).*Place n ticks at powers of 10 on the axis.4Place n linear spaced ticks between each major tick.zChoose ticks whose step size is a multiple of 10 of the allowed numbers and tries to match the number of desired ticks.Note that the resulting tick positions may go out of the range of the bounds. This is so the minor ticks can be chosen correctly if a tick doesn't end exactly on a bound. When we render, we ignore all ticks outside the bounds.<'()*+,-     ./0123-Number of minor ticks between each major tickPositions of major ticksBoundsMinor tick positions$Allowed numbers (up to powers of 10)desired number of ticksboundstick positions4 !"#$%&'()*#     #     "'()*+,-     ./01234 !"#$%&'()*(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 09:;<=?DORT/JThe text used for the title. If the string is empty, no title is drawn. Default is ""0The style applied to the title. Default is .1,The placement of the title against the axis. Default is .2'The gap between the axis and the title. Default is .46Render the title and place it around the bounding box.-./012356789:;456789-1./02343-./0124-./012356789:;456789 None09:;<=?DORT ;Lens onto the D of something.<The  of the legend relative to the #.=(The gap between the legend and the axis.>6The style applied to the surronding box of the legend.?*The spacing between entries in the legend.@+The space given for the text in the legend.A)The function to generate the legend text.B%The style applied to the legend text.C^The way the legend entries are listed. (This will likely be replaced by a grid-like system)DJThe data type to describe how to draw a legend. For legend entries see .EQDraw a legend to the bounding box using the legend entries and legend options.:;<=>?@ABCD<=>?@ABCDEE$bounding box to place legend against%diagram pictures along with their keyoptions for drawing the legendrendered legendFGHIJKL :;<=>?@ABCDE D:;<=>?@ABCE : ;<=>?@ABCD <=>?@ABCDEEFGHIJKL (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 09:;<=?DRMClass of object that have an R.NLens onto the R.O.The position of the axis line around the axis. is T.PGThe options for if you want the axis line to have arrows at the end. is .'XXX (feature not currently implimented)QThe  applied to the axis lineR3Information about position and style of axis lines.S4Where axis line for coordinate should be drawn. The  is T.MNOPQRFGHIJSTUVWXYZ[\ MNOPQRSTUVWX RMNOPQSTUVWXMNOPQRFGHIJSTUVWXYZ[\ (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 09:;<=?DR`VThe options for the label of ticks. This can be used on various levels of the axis: ` :: K (Tick b c n) (e ( BaseSpace c) n) ` ::  ( SingleAxis b v n) (e v n) ` ::  ( TickLabel v n) (e v n) aThe v to render the text. is L.bTick labels functions are used to draw the tick labels. They has access to the major ticks and the current bounds. Returns the position of the tick and label to use at that position. is x McThe  to use on the rendered text. is N (O 11).d-The gap between the axis and the tick labels. is 12.gYThe options for the label of the axis. This can be used on various levels of the axis: g :: K (Axis b c n) (n ( BaseSpace c) n) g ::  ( SingleAxis b v n) (n v n) g ::  (n v n) (n v n) h'The text to use when labeling the axis.iThe v& to render the text of the axis label.jRThe gap between the axis and the labels, in the direction corresponding to the l.kThe  to use on the rendered text.l8The position the label will be placed parallel the axis.mFWhether the axis label should be placed inside or outside the axis.o Whether the n% should be inside or ouside the axis.rThe position of the n along the axis.v~Function to render the axis label from a string. This is very basic now and will be replace by a more sophisticated system.wNSetter over the final positions the major ticks. This is not as general as minorTicksFunction because you don't have access to the bounds but it can be useful when you know exactly what ticks you want to add or modify existing tick positions.MNumbers are shown as PYs to reduce the chance of numbers like 1.30000000008. (This is not an ideal solution.)xMake a TickLabelFunctionI by specifying how to draw a single label from a position on the axis.2_`abcdeQRSTUVfghijklmnWXYZ[\]^opqrstuvwMxyz{|}~_`abcdefghijklmnopqrstuvwxfghijklmnrstuopqe_`abcdwxv_`abcdeQRSTUVfghijklmnWXYZ[\]^opqrstuvwMxyz{|}~ (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 09:;<=?DR>Type holding infomation about both major and minor grid lines.^The options for how to draw the grid lines. This can be used on various levels of the axis:  :: K (Axis b c n) ( ( BaseSpace c) n)  ::  ( SingleAxis b v n) ( v n)  ::  ( v n) ( v n) kThe function to calculate location of the minor grid lines given location of the minor ticks and bounds.*The style applied to the minor grid lines.^The options for how to draw the grid lines. This can be used on various levels of the axis:  :: K (Axis b c n) ( ( BaseSpace c) n)  ::  ( SingleAxis b v n) ( v n)  ::  ( v n) ( v n) kThe function to calculate location of the major grid lines given location of the major ticks and bounds.*The style applied to the major grid lines.A grid line function takes the positions of the respective ticks (minor ticks for minor grid lines, major ticks for major grid lines) and the bounds of the axis and returns the positions of the grid lines.,These functions are used in conjuction with majorGridLineFunction and minorGridLineFunction$ to control how the lines are drawn.NPlace grid lines at the same position as the respective ticks. This is the .The  such that no grid lines appear.See , majorGridLineVisible or minorGridLineVisible) if you just want to hide the grid lines.4Traversal over both the major and minor grid styles.  :: K (Axis b c n) _  :: K ( SingleAxis b v n) _  :: K ( v n) _ %Hide both major and minor grid lines.  :: Axis b c n -> Axis b c n  ::  SingleAxis b c n ->  SingleAxis b c n  ::  b c n ->  GirdLines b c n %Show both major and minor grid lines.  :: Axis b c n -> Axis b c n  ::  SingleAxis b c n ->  SingleAxis b c n  ::  b c n ->  GirdLines b c n eTraversal over both the major and minor grid styles. This can be used at seversal levels in the Axis:Hidden by default.,`abcdefghij`abcdefghij (C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"$9:;<=?DR Lens onto the .How to draw the colour bar. Expects a 1 by 1 box with the gradient going from left to right, without an outline with origin in the middle of the left side. See  and .5The colour map this function recieves it given by   from  Plots.Style Default is .HThe width (orthogonal to the colour bar direction) of the colour bar. is 20.^Set the length of the colour bar given the length of the axis the colour bar is aligned to. is k.CGap between the axis and the colour bar (if rendered with an axis). is 20.+Style used for the outline of a colour bar.@Options for drawing a colour bar. Note that for an axis, the  is stored in the  J. These options are for other aspects of the bar, not the colours used.The default colour bar.EAdd a colour bar to an object, using the bounding box for the object.HRender a colour bar by it's self at a given width. Note this ignores  and .The colour bar generated by a gradient texture. The final diagram is 1 by 1, with origin at the middle of the left side. This can be used as the  function.*This may not be supported by all backends. idiagrams/src_Plots_Axis_ColourBar_gradientColourBarExample.svg#diagram=gradientColourBarExample&width=600"Construct a colour bar made up of n| solid square paths. The final diagram is 1 by 1, with origin at the middle of the left side. This can be used as the  function. adiagrams/src_Plots_Axis_ColourBar_pathColourBarExample.svg#diagram=pathColourBarExample&width=600#lmnopqrstuvbounding box to place againstoptions for colour bar map to use&bounds of the values on the colour barlength of the colour barwxy   lmnopqrstuvwxy(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone $*69:;<=?DR+Things that are isomorphic to points in R2. Provides an z between a and { v nR. This is normally used to convert between the data type you're already using, a , and diagram's native form, { v n.Isomorphism from { v n to something  a.#mkP2 3 5 ^. pointLike :: (Int, Int)(3,5)Isomorphism from something  a to  Point v n.%((3, 5) :: (Int, Int)) ^. unpointLike P (V2 3 5) Provides an z between a and v nR. This is normally used to convert between the data type you're already using, a , and diagram's native form, v n.Isomorphism from  Point v n to something  a."V2 3 5 ^. vectorLike :: (Int, Int)(3,5)Isomorphism from something  a to  Point v n.&((3, 5) :: (Int, Int)) ^. unvectorLikeV2 3 5WUmbrella class giving everything needed for working in the space. This is basically  or | from "linear".  (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone023459:;<=DIR fCoordinate with at least two dimensions where the x and y coordinates can be retreived numerically.Coordinate with at least one dimension where the x coordinate can be retreived numerically. Note this differs slightly from }e which requires a lens for all values. This allows instances for different coordinates such as ;, where the x coordinate can only be retreived numerically.+Space which has a radial and angular basis.Space which has a radial length basis. For Polar and Cylindrical this is the radius of the circle in the xy-plane. For Spherical this is the distance from the origin. Construct a  from a magnitude and an ~. Construct a  from a magnitude and ~ tuple.Turn a  back into a magnitude and ~ tuple.z between  and its tuple form. Numerical z between  and .2Polar interpolation between two polar coordinates.Does not satify lens laws.%(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 09:;<=DORT\Axis is the data type that holds all the nessessary information to render a plot. Common Os used for the axis (see haddock's instances for a more comprehensive list):  - customise the  ; - customise the D - customise the  - current plots in the / - changes to the plots just before rendering - changes to each   - the x-axis  - the y-axis - the z-axisThe following >s can be used on the on all the axes by applying it the to  or can be used on a : by using it in combination with a specific axis (like  ).g - customise the ` - customise the e - customise the  - customise the   - customise the N - customise the RT - customise the _lPlots are usually added to the axis using specific functions for that plots ('Plots.Types.Line.linePlot, $). These functions use  to add the plot to the axis.]This family is used so that we can say (Axis Polar) but use V2 for the underlying diagram.)Render infomation for a single axis line.`Lens onto the separate axes of an axis. Allows changing the coordinate system as long as the  is the same.  ::  ( b c n) (c ( b v n)) (The list of plots currently in the axis.-Traversal over the current plots in the axis.For example, to make all  ScatterPlot!s currently in the axis use a connectingLine, you can write  . connectingLine .=  7Setter over the final plot before the axis is rendered.For example, to make all  ScatterPlots in the axis use a connectingLineB (both currently in the axis and ones added later), you can add  . connectingLine .=  Lens onto the modifier set by O. This gets applied to all plots in the axis, just before they are rendered.$The size used for the rendered axis.RThe range used for the colour bar limits. This is automaticlaly set when using heatMap or heatMap'Add a   to an .Add something  to the ) with a statefull modification of the .Simple version of  AddPlotable without any changes ."The default axis for plots in the  coordinate system. Lens onto the x-axis of an . (The label for the x-axis. Shorthand for   . h. 2The minimum x value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis. 2The minimum x value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis. Lens onto the y-axis of an .(The label for the y-axis. Shorthand for   . h.2The minimum y value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.2The minimum y value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.Lens onto the z-axis of an .(The label for the z-axis. Shorthand for  . h.2The minimum z value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.2The minimum z value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis. Lens onto the radial axis of an .-The label for the radial axis. Shorthand for  . h.2The minimum z value for the axis. If the value if  (the ~), the bounds will be infered by the plots in the axis. rMin :: R3 c => Lens' (Axis b c n) (Maybe n) rMin = zAxis . boundMin7The minimum radial value for the axis. If the value if  (the :), the bounds will be infered by the plots in the axis. Lens onto the radial axis of an .-The label for the radial axis. Shorthand for  . h.Lthe plotadd plot to the  the raw plotchanges to the plotadd plot to the  the raw plotadd plot to the       !"#$%&'()*+,-./012345            ;       !"#$%&'()*+,-./012345(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"$09:;<=DLR!6The 6 is used to set the various options available when building multiple bar plots together. The main functions used to modify this state:=To choose the way the bars are grouped together choose one ofI) - Together in grouped (the default)K - On on top of anotherL - K with the same heightM+ - each group of bars follows the last Modify the  and  of groups of bars with O..Modify the layout of the (groups of) bars with - Horizontal or vertical bars:% - Width of each (group of) bar(s);( - Space between each (group of) bar(s)<" - Start of centre of first bar(Add labels to each (group of) bars with P.options for building bar plots8the data along with an adjustment to the plot properties-labels to be placed at the bottom of each bar function used to build bar plots7XA bar plot for a single set of bars. Multi-bar plots are achieved by having multiple 7os. Each bar plot corresponds to a single legend entry. To get multiple bar entries/colours, use multiple BarPlots8'Class of things that have a modifiable =.9Lens onto the =:XThe width bar for single / stacked bars or the width of a group for grouped bar plot. Default is 0.8;.The spacing between each bar or group of bars. Default is 1<6The distance from the axis to centre of the first bar. Default is 1=TThe way an individual bar plot or a group of bars plots are laid out on the axis.*Data for a single bar. The bar is drawn as RfromCorners (V2 barPos (fst barBounds))) (V2 (barPos + barWidth) (snd barBounds)) for  bars, flipped for Y. This is a low level representation of a bar and is not intended to be used directly.BConstruct a rectangle of size v with the bottom centre at point p.>)Create equidistant bars using the values.?ACreate equidistant bars with lower and upper bounds for each bar.@NCreate uniform bars from groups of data, placing one group after the other.ApCreate uniform bars from groups of data, placing one on top of the other. The first list will be the same as #mkUniformBars opts (map (0,) ys)), subsequent lists will be placed on top.B Similar to mkMultiStacked but stack has the same height.CeMake bars that are grouped together. Each group of bars is treated as a single bar when using the  BarPlotsOptsO. There is an addition parameter to adjust the width of each individual bar.DA add 7 to an .Example Idiagrams/src_Plots_Types_Bar_barExample.svg#diagram=barExample&height=400 import Plots barAxis :: Axis B V2 Double barAxis = r2Axis &~ do yMin ?= 0 hide majorGridLines barPlot [13.5, 3.0, 6.9, 7.2, 4.6] $ do vertical .= True barWidth //= 2 barExample = renderAxis barAxisESimple version of D! without any modification to the .Example Kdiagrams/src_Plots_Types_Bar_barExample'.svg#diagram=barExample'&height=400 import Plots barAxis' :: Axis B V2 Double barAxis' = r2Axis &~ do xMin ?= 0 hide (yAxis . majorGridLines) barPlot' [13.5, 3.0, 6.9, 7.2, 4.6] !barExample' = renderAxis barAxis'FA add 7 to an  while naming the bars.Example Sdiagrams/src_Plots_Types_Bar_namedBarExample.svg#diagram=namedBarExample&height=400 import Plots namedBarAxis :: Axis B V2 Double namedBarAxis = r2Axis &~ do yMin ?= 0 hide (xAxis . majorGridLines) namedBarPlot [("eggs", 12), ("bacon", 5), ("sausage", 9), ("beans", 3)] $ do vertical .= True barWidth //= 2 namedBarExample = renderAxis namedBarAxisGSimple version of F! without any modification to the .Example Udiagrams/src_Plots_Types_Bar_namedBarExample'.svg#diagram=namedBarExample'&height=400 import Plots namedBarAxis' :: Axis B V2 Double namedBarAxis' = r2Axis &~ do xMin ?= 0 hide majorGridLines namedBarPlot' [("eggs", 12), ("bacon", 5), ("sausage", 9), ("beans", 3)] +namedBarExample' = renderAxis namedBarAxis'HSame as D. but with lower and upper bounds for the bars.ICBars that are grouped together such that each group is a single :_. The bars in a group are touching, see groupedBars' to reduce the width of individual bars.Example Ydiagrams/src_Plots_Types_Bar_groupedBarsExample.svg#diagram=groupedBarsExample&height=400JCBars that are grouped together such that each group is a single :M. The parameter is the multiplier for the width of individual bars, where I 1 = groupedBarsQ corresponds to bars in a group touching. reduce the width of individual bars.Example [diagrams/src_Plots_Types_Bar_groupedBarsExample'.svg#diagram=groupedBarsExample'&height=400K"Bars stacked on top of each other.Example Ydiagrams/src_Plots_Types_Bar_stackedBarsExample.svg#diagram=stackedBarsExample&height=400LIBars stacked on top of each other where every bar is the given height.Example cdiagrams/src_Plots_Types_Bar_stackedEqualBarsExample.svg#diagram=stackedEqualBarsExample&height=400MNormal bars& where each data set follows the last.Example Ydiagrams/src_Plots_Types_Bar_runningBarsExample.svg#diagram=runningBarsExample&height=400N/Construct multiple bars, grouped together. See 6; for details on how to customise how the bars are drawn.Example Sdiagrams/src_Plots_Types_Bar_multiBarExample.svg#diagram=multiBarExample&height=400 import Plots breakfastData :: [(String, V2 Double)] breakfastData = [("eggs", V2 7 5), ("bacon", V2 5 4), ("sausage", V2 2 7), ("beans", V2 2 1)] xsortedData = [ ("girls", breakfastData^..each._2._x) , ("boys", breakfastData^..each._2._y) ] multiBarAxis :: Axis B V2 Double multiBarAxis = r2Axis &~ do yMin ?= 0 hide (xAxis . majorGridLines) hide minorTicks xLabel .= "breakfast item" multiBars sortedData snd $ do vertical .= True barWidth //= 2 labelBars (map fst breakfastData) onBars $ \(nm,_) -> key nm -- show y values without decimal point yAxis . tickLabelFunction .= atMajorTicks (show . round) -- we should really force all major ticks to like on integers too )multiBarExample = renderAxis multiBarAxis4Place labels under the centre of each bar using the = by changing that axisTickLabels%, using the provided string in order.OUGiven the data for the bar, modify the properties for the bar that uses that data.$Some common functions to use on the : - change the colour of the bars - modify the style of the bars, - add a legend entry for that group of barsP=Labels to use for each bar (or group of bars) along the axis.:6789:;<=>?@ABvalue each bar reachesvaluesC.width factor of individual bars (1 = touching)D bar heightschanges to the barschanges to the E bar heightschanges to the Fbar heights with namechanges to the barschanges to the Gbar heights with nameadd plot to the H bar limitschanges to the barsIJKLMNdata for multi plot&extract bar heights from each data set!state to make changes to the plotchanges to the O Modifier the  and - for the bars associated with the data from a.(Changes to each data set when executing N.PQRSTUVWXYZ[6789:;<=>?@ABCDEFGHIJKLMNOP7DEFGH=89:;<N6IJKLMOP>?@ABC(6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"09:;<=?DORT]-Options for building the histogram from data.^HThe number of bins (bars) to use for the histogram. Must be positive. is 10._dThe range of data to consider when building the histogram. Any data outside the range is ignored. is .`GShould the resulting histogram be normalised so the total area is 1. is False.a`Options for binning histogram data. For now only very basic histograms building is supported.bIThe way to normalise the data from a histogram. The default method is f.c.Simple histogram type supporting uniform bins.@Construct a rectangle of size v with the bottom left at point p.d;Plot an already computed histogram with equally sized bins.e Construct a c from raw histogram data.fEThe height of each bar is the number of observations. This is the  method.Example Kdiagrams/src_Plots_Types_Histogram_countDia.svg#diagram=countDia&height=350g1The sum of the heights of the bars is equal to 1.Example Wdiagrams/src_Plots_Types_Histogram_probabilityDia.svg#diagram=probabilityDia&height=350hThe height of each bar is n / w where n& is the number of observations and w is the total width.Example Ydiagrams/src_Plots_Types_Histogram_countDensityDia.svg#diagram=countDensityDia&height=350iThe total area of the bars is 18. This gives a probability density function estimate.Example Gdiagrams/src_Plots_Types_Histogram_pdfDia.svg#diagram=pdfDia&height=350jThe height of each bar is the cumulative number of observations in each bin and all previous bins. The height of the last bar is the total number of observations.Example Udiagrams/src_Plots_Types_Histogram_cumilativeDia.svg#diagram=cumilativeDia&height=350kCumulative density function estimate. The height of each bar is equal to the cumulative relative number of observations in the bin and all previous bins. The height of the last bar is 1.Example Gdiagrams/src_Plots_Types_Histogram_cdfDia.svg#diagram=cdfDia&height=350l4Create a histogram by binning the data using the a.mAdd a c to the  AxisState from a data set.Example [diagrams/src_Plots_Types_Histogram_histogramExample.svg#diagram=histogramExample&height=350 import Plots histogramAxis :: Axis B V2 Double histogramAxis = r2Axis &~ do histogramPlot sampleData $ do key "histogram" plotColor .= blue areaStyle . _opacity .= 0.5 +histogramExample = renderAxis histogramAxisnMake a c% without changes to the plot options.oAdd a c using a fold over the data.pSame as o! without any changes to the plot.-\]^_`abcdstart of first binwidth of each binheights of the binsestart of first binwidth of each binheights of the binsfghijkl"Number of bins (must be positive).Sample data (cannot be empty).mdatachanges to plot optionsadd plot to axisndataadd plot to axisofold over the data data to foldchange to the plotadd plot to the pqrstuvwx\]^_`abcdefghijklmnopcda\]^_`bfghijkmnopel\]^_`abcdefghijklmnopqrstuvwx(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone$09:;<=DORT\!The position of axis labels for ayRenderable axes.zMRender an axis to a diagram. The size of the diagram is determined by the .{ specialised to a 2D Axis.|aBuild a list of styled plots from the axis, ready to be rendered. This takes into account any   changes and applies the  modifications.The  StyledPlots can be rendered with 0 and the legend entries can be obtained with . This is what zX can uses internally but might be useful for debugging or generating your own legend.7An lower and upper bound for the bounding radius using n] envelope calculations. The more calculations used, the smaller the range of the bound.~The yA class provides a default way to render an axis for each space.yz{|}~yz{|yz{|yz{|}~(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"09:;<=?DR8Class of things that let you change the heatmap options.Lens onto the heatmap options.9Whether there should be grid lines draw for the heat map. Default is .LThe style applied to the grid lines for the heat map, if they're visible. Default is .3The size of each individual square in the heat map. Default is  1 1.,The size of the full extend of the heat map.%Default is extent of the heat matrix.=The starting point at the bottom left corner of the heat map. Default is !The center point of the heat map.Limits (a,b) used on the data such that a is the start of the  and b is the end of the  . Default is (0,1).)Funtion used to render the heat map. See  and . Default is .&A mapping from points in a 2D axis do  s. These -s are converted to colours using the axis . 2D Array of s.The size of heat matrix.>Construct a heat matrix from a size and a generating function.5Construct a heat matrix from a foldable of foldables.  :: [[]] ->   :: [ ] ->  'Indexed traversal over the values of a .Render an heatmap as an .Example ediagrams/src_Plots_Types_HeatMap_pixelHeatRenderExample.svg#diagram=pixelHeatRenderExample&height=350 import Plots pixelHeatRenderExample = let f (V2 x y) = fromIntegral x + fromIntegral y myHM = mkHeatMatrix (V2 5 5) f in pixelHeatRender myHM viridisRender an heatmap as an  with n! pixels per heat matrix point.Example gdiagrams/src_Plots_Types_HeatMap_pixelHeatRenderExample'.svg#diagram=pixelHeatRenderExample'&height=350 import Plots pixelHeatRenderExample' = let f (V2 x y) = fromIntegral x + fromIntegral y myHM = mkHeatMatrix (V2 5 5) f in pixelHeatRender' 10 myHM viridisRScale an image so each pixel takes (n*n) pixels. This can be usefull for using 3 on small heat matrixes to give a sharper image.Create an image of  PixelsRGB8 using the heat matrix.7Render the heat map as a collection squares made up of s. This method is compatible with all backends and should always look sharp. However it can become slow and large for large heat maps.It is recommended to use  for small heat maps and  for larger ones.Example cdiagrams/src_Plots_Types_HeatMap_pathHeatRenderExample.svg#diagram=pathHeatRenderExample&height=350 import Plots pathHeatRenderExample = let f (V2 x y) = fromIntegral x + fromIntegral y myHM = mkHeatMatrix (V2 5 5) f in pathHeatRender myHM viridis Construct a Heatmap using the given .Add a C plot using the extent of the heatmap and a generating function.  :: [[]] ->  ( ( b n)) () ->  ( b  n) () Example Udiagrams/src_Plots_Types_HeatMap_heatMapExample.svg#diagram=heatMapExample&height=350 import Plots heatMapAxis :: Axis B V2 Double heatMapAxis = r2Axis &~ do display colourBar axisExtend .= noExtend let xs = [[1,2,3],[4,5,6]] heatMap xs $ heatMapSize .= V2 10 10 'heatMapExample = renderAxis heatMapAxisAdd a C plot using the extent of the heatmap and a generating function.  :: [[]] ->  ( b  n) () Example Wdiagrams/src_Plots_Types_HeatMap_heatMapExample'.svg#diagram=heatMapExample'&height=350 import Plots heatMapAxis' :: Axis B V2 Double heatMapAxis' = r2Axis &~ do display colourBar axisExtend .= noExtend axisColourMap .= Plots.magma let xs = [[1,2,3],[4,5,6]] heatMap' xs )heatMapExample' = renderAxis heatMapAxis'Add a C plot using the extent of the heatmap and a generating function.  ::   -> (  ->  ) ->  ( ( b n)) () ->  ( b  n) ()  :: (, ) -> ((, ) -> ) ->  ( ( b n)) () ->  ( b  n) () Example cdiagrams/src_Plots_Types_HeatMap_heatMapIndexedExample.svg#diagram=heatMapIndexedExample&height=350 import Plots heatMapIndexedAxis :: Axis B V2 Double heatMapIndexedAxis = r2Axis &~ do display colourBar axisExtend .= noExtend let f (V2 x y) = fromIntegral x + fromIntegral y heatMapIndexed (V2 3 3) f $ heatMapSize .= V2 10 10 5heatMapIndexedExample = renderAxis heatMapIndexedAxisAdd a i plot using the extent of the heatmap and a generating function without changes to the heap map options.  ::   -> (  ->  ) ->  ( b  n) ()  :: (, ) -> ((, ) -> ) ->  ( b  n) () Example ediagrams/src_Plots_Types_HeatMap_heatMapIndexedExample'.svg#diagram=heatMapIndexedExample'&height=350 import Plots heatMapIndexedAxis' :: Axis B V2 Double heatMapIndexedAxis' = r2Axis &~ do display colourBar axisExtend .= noExtend axisColourMap .= Plots.magma let f (V2 x y) = fromIntegral x + fromIntegral y heatMapIndexed' (V2 3 3) f 7heatMapIndexedExample' = renderAxis heatMapIndexedAxis'.changes to plot options add plot to  add plot to extent of arrayheat from indexchanges to plot options add plot to extent of arrayheat from index add plot to  (C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 9:;<=?DORT Add a  as a  to an .Add a  as a  to an ( without changes to the plot options.Add a  as a  to an .Add a  as a  to an ( without changes to the plot options.Add a  plot from a list of points.Add a  plot from a list of points. Add a smooth " plot from a list of points using . Add a smooth " plot from a list of points using ( without changes to the plot options.;Construct a localed trail from a list of folable of points.2Construct a localed trail from a fold over points.2Construct a localed trail from a fold over points.2Construct a localed trail from a fold over points.  trail to plotchanges to plot optionsadd plot to the  trail to plotadd plot to the  path to plotchanges to plot optionsadd plot to the  path to plotadd plot to the points to turn into trailchanges to plot optionsadd plot to the points to turn into trailadd plot to the points to turn into trailchanges to plot optionsadd plot to the points to turn into trailadd plot to the    (C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"$/09:;<=?ADORT@The state used to draw a part chart made of multiple pie wedges.#Description on how to draw a wedge.,The outside radius of the wedge. Default is 1./The inside radius of the wedge. Default is $0$.(The offset of the wedge from the center.*The width of the wedge, starting from the .%The inititial direction of the wedge.vContains information to draw a single wedge of a pie. It is not intended to be draw directly. Instead use 'piePlot.;Create a pie wedge with unit radius, starting at direction d with width theta.5Modify the state for each wedge given the data entry.!Some common lenses to use on the : - change the colour of the bars - modify the style of the bars, - add a legend entry for that group of bars* - the offset of the wedge from the centerSAdd a legend entry for each item given a function that extracts the item's name.IMake a pie plot from a list of data by making a series of wedge plots.Example Qdiagrams/src_Plots_Types_Pie_piePlotExample.svg#diagram=piePlotExample&height=350 import Plots pieData = [("red", 3), ("blue", 4), ("green", 2), ("purple", 5)] piePlotAxis :: Axis B Polar Double piePlotAxis = polarAxis &~ do piePlot pieData snd $ wedgeKeys fst hide (axes . traversed) 'piePlotExample = renderAxis piePlotAxis8Make a pie plot from list of values without any changes.Example Kdiagrams/src_Plots_Types_Pie_pieExample'.svg#diagram=pieExample'&height=350 import Plots piePlotAxis' :: Axis B Polar Double piePlotAxis' = polarAxis &~ do piePlot' [1,3,5,2] wedgeInnerRadius .= 0.5 hide (axes . traversed) %pieExample' = renderAxis piePlotAxis' Add a single PiePlot to the  AxisState from a data set.Example Mdiagrams/src_Plots_Types_Pie_wedgeExample.svg#diagram=wedgeExample&height=350 {import Plots wedgePlotAxis :: Axis B Polar Double wedgePlotAxis = polarAxis &~ do wedgePlot xDir (38@@deg) $ key "wedge" 'wedgeExample = renderAxis wedgePlotAxis starting directionwidth of wedgeresulting wedgedata for each wedgeextract weight of each wedgeweight of each wedge(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"%&09:;<=?DOQRTCA bubble plot is a scatter plot using point together with a scalar.Lens onto the  for a general scatter plot.;Apply a transform to the markers using the associated data.7Apply a style to the markers using the associated data.9Change the position of the markers depending on the data.Class of things that have a  for a  's connecting line.w onto whether the scatter plot should have a connecting line between points. If the line is present, it uses the  from the .A general data type for scatter plots. Allows storing different types of data as well as allowing transforms depending on the data.A general data type for scatter plots. Allows storing different types of data as well as allowing transforms depending on the data.Low level construction of .#Lens onto a scatter plot of points.Add a  to the  AxisState from a data set. + myaxis = r2Axis ~& scatterPlot data1 Example Udiagrams/src_Plots_Types_Scatter_scatterExample.svg#diagram=scatterExample&height=350 import Plots mydata1 = [(1,3), (2,5.5), (3.2, 6), (3.5, 6.1)] mydata2 = mydata1 & each . _1 *~ 0.5 mydata3 = [V2 1.2 2.7, V2 2 5.1, V2 3.2 2.6, V2 3.5 5] scatterAxis :: Axis B V2 Double scatterAxis = r2Axis &~ do scatterPlot mydata1 $ key "data 1" scatterPlot mydata2 $ key "data 2" scatterPlot mydata3 $ key "data 3" 'scatterExample = renderAxis scatterAxis Version of  without any changes to the .Example Wdiagrams/src_Plots_Types_Scatter_scatterExample'.svg#diagram=scatterExample'&height=350 import Plots mydata4 = [(1,3), (2,5.5), (3.2, 6), (3.5, 6.1)] mydata5 = mydata1 & each . _1 *~ 0.5 mydata6 = [V2 1.2 2.7, V2 2 5.1, V2 3.2 2.6, V2 3.5 5] scatterAxis' :: Axis B V2 Double scatterAxis' = r2Axis &~ do scatterPlot' mydata4 scatterPlot' mydata5 scatterPlot' mydata6 )scatterExample' = renderAxis scatterAxis' Version of  that accepts a  over the data. Version of  that accepts a - over the data without any changes to the .Scatter plots with extra numeric parameter. By default the extra parameter is the scale of the marker but this can be changed.Simple version of  without any changes to the . Version of  using a  over the data. Version of  using a - over the data without any changes to the .LensLike onto into a  made up of a scaler n, and a point, { v n  ::  ( ( v n) v) ( v n) )Setter over the transform function for a  . Default is .  ::  ( ( v n) v) (n ->  v n) .Note that this is the less general version of  . , which would give a  onto (n, { v n) ->  v n.%Setter over the style function for a  . Default is .  ::  ( ( v n) v) (n ->  v n) .Note that this is the less general version of  . , which would give a  onto (n, { v n) ->  v n.1A general scatter plot allow using any data type d to determine the  and .UHelper to traverse over a general scatter plot where the type of d is not infered.-points to plotchanges to plot options add plot to points to plot add plot to fold over points data to foldchanges to plot options add plot to fold over points data to foldadd plot to axisfold over points with a sizechanges to the options add plot to fold over points with a size add plot to fold over the datadatachanges to the options add plot to fold over the datadatachanges to the options add plot to dataextract point from dataoptions for plot add plot to !(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone  !"#$%&'()*+,-./01234567PRQSTUVWXYZ[\^]_`abcdefghijklmno}~     -1./0234:;<=>?@ABCDE_`abcdefghijklmnopqrstuvwx     6789:;<=>?@ABCDEFGHIJKLMNOP\]^_`abcdefghijklmnopyz{|%&'%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkklmnopqrstuvwxyz{|}~q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                # !"#$%&'() *+!,-./01"23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]$^_`abcdefghijklmnopqrstuvwxyz{|}~% %   % /4D !"#$%&'()*+,,-./012345678%&9%:;<=>%&?@ABCDEFGHI%JK!(LMNOP/QRSTUVUWXYZ[\ f ] ^ _ ` a b c d e t f g h i j%kl m%knop%&q  r s t u v  w x i y z { h%&|  } ~                       """%"# #PQWz|%"%%&%    #plots-0.1.0.1-QSDKmaZNZULyWgNO9SpIeDiagrams.Coordinates.Polar Plots.Util Plots.Style Plots.NamePlots.Axis.Scale Plots.TypesPlots.Axis.TicksPlots.Axis.Title Plots.LegendPlots.Axis.LinePlots.Axis.LabelsPlots.Axis.GridPlots.Axis.ColourBarDiagrams.Coordinates.Isomorphic Plots.AxisPlots.Types.BarPlots.Types.HistogramPlots.Axis.RenderPlots.Types.HeatMapPlots.Types.LinePlots.Types.PiePlots.Types.ScatterHeatMap ColourBarPlotsBar Plots.StylesRibbonScatterxMinyMinxMaxyMaxrMaxAxisbarPlot*diagrams-lib-1.4.0.1-JTAXetJgV3sNVm5dbeIEpDiagrams.TwoD.Types_rHasR&=&~~ enumFromToNwheneverpathFromVerticesminMaxOf ColourMap HasAxisStyle axisStyle axisColourMap axisStyles AxisStyle HasPlotStyle plotStyle plotColour plotColor lineStylelineStyleFunction markerStylemarkerStyleFunction areaStyleareaStyleFunction textStyletextStyleFunction plotMarker plotStylesplotStyleFunctions PlotStyleapplyLineStyleapplyMarkerStyleapplyAreaStyleapplyTextStyle fadedColours vividColours blackAndWhitecolours1colours2 lineMarkersasteriskdiamond crossShapeplusstar'ixColour cmTraverse colourList colourMapalphaColourMaptoStopsgreysmagmainfernoplasmaviridis $fAtColourMap$fIxedColourMap.$fEachColourMapColourMapAlphaColourAlphaColour$fAsEmptyColourMap$fTransformableColourMap$fWrappedColourMap$fRewrappedColourMapColourMap$fHasPlotStylefAxisStyleb$fHasAxisStyleAxisStyleb$fTransformablePlotStyle$fHasPlotStylefPlotStyleb$fShowColourMapPlotName _plotName _namedSize2D_namedT2 namedSize2DnamedT2plotName$fIsNamePlotName $fOrdPlotName $fEqPlotName$fShowPlotNameLogScale LinearAxisLogAxisHasAxisScaling axisScalingscaleAspectRatio scaleModelogScale axisExtendboundMinboundMax renderSize ExtendingAbsoluteExtendRelativeExtend AxisScalingUniformScaleStrategyAutoUniformScaleUnitOnlyChangeVerticalLimitsChangeHorizontalLimits ScaleMode AutoScaleNoScaleStretch UniformScalenoExtendcalculateBoundscalculateScaling logNumberlogPoint logDeform$fDefaultLogScale$fHasAxisScalingfAxisScaling$fDefaultAxisScaling$fShowUniformScaleStrategy$fReadUniformScaleStrategy$fShowScaleMode$fReadScaleMode$fShowExtending$fOrdExtending $fEqExtending$fFunctorExtending$fShowLogScale $fEqLogScaleAxisSpec _specBounds _specTrans _specScale_specColourMapHasPlotOptions plotOptionsclipPlot legendEntries plotTransform plotVisible PlotOptions LegendEntry LegendPicDefaultLegendPicCustomLegendPic HasPlacement placement placementAtplacementAnchor gapDirection PlacementpAtpAnchorpGapDirHasGapgapHasOrientation orientation Orientation HorizontalVerticalorient horizontalverticaltopLefttoptopRightleftright bottomLeftbottom bottomRight leftAboveleftTopleftMid leftBottom leftBelowmidAbovemidBelow rightAboverightToprightMid rightBottom rightBelow placeAgainst legendPicture legendTextlegendPrecedence mkLegendEntrykeyaddLegendEntry$fQualifiablePlotOptions$fHasOriginPlotOptions$fTransformablePlotOptions$fHasPlotOptionsfPlotOptionsb$fDefaultPlotOptions$fDefaultLegendPic$fHasPlacementPlacement$fHasOrientationOrientation$fShowOrientation$fEqOrientation$fOrdOrientation$fShowPlacement$fReadPlacement $fEqPlacement$fOrdPlacement StyledPlot DynamicPlotPlotPlotMods HasVisibilityvisiblehiddenPlotablerenderPlotable defLegendPic specBounds specColourMap specScale specTransscaleNum specPointhidedisplaymkPlotrawPlotplotMods _DynamicPlot dynamicPlotdynamicPlotMods styledPlot styleDynamicrenderStyledPlotsingleStyledPlotLegendstyledPlotLegends$fHasPlotStylefStyledPlotb$fEnvelopedStyledPlot$fHasPlotOptionsfStyledPlotb$fHasPlotStylefDynamicPlotb$fHasPlotOptionsfDynamicPlotb$fHasOrientationPlot$fHasPlotStylefPlotb$fHasPlotOptionsfPlotb$fDefaultPlotMods$fHasPlotStylefPlotModsb$fHasPlotOptionsfPlotModsb$fHasVisibilityStyledPlot$fHasVisibilityDynamicPlot$fHasVisibilityPlot$fHasVisibilityPlotMods$fHasVisibilityPlotOptions$fPlotablePathb$fPlotableQDiagrambHasTicks bothTicksTicks HasMinorTicks minorTicksminorTicksFunctionminorTicksAlignmentminorTicksLengthminorTicksStyle MinorTicks HasMajorTicks majorTicksmajorTicksFunctionmajorTicksAlignmentmajorTicksLengthmajorTicksStyle MajorTicksTicksAlignmentTickSpecAutoTick autoTicks centreTicks centerTicks insideTicks outsideTicks ticksAlign ticksStyle ticksVisible hideTicksmajorTickPositionsminorTickPositionslinearMajorTicks logMajorTicksminorTicksHelpermajorTicksHelper$fHasStyleTicks$fDefaultTicks$fHasMinorTicksfTicks$fHasMajorTicksfTicks$fHasTicksfTicks$fHasVisibilityMinorTicks$fHasMinorTicksfMinorTicks$fDefaultMinorTicks$fHasVisibilityMajorTicks$fHasMajorTicksfMajorTicks$fDefaultMajorTicks$fShowTicksAlignment$fEqTicksAlignmentHasTitletitle titleText titleStyletitlePlacementtitleGapTitle drawTitle$fHasTitleTitleb$fHasPlacementTitle $fHasGapTitle$fHasVisibilityTitle$fDefaultTitle HasLegendlegendlegendPlacement legendGap legendStyle legendSpacinglegendTextWidthlegendTextFunctionlegendTextStylelegendOrientationLegend drawLegend$fHasOrientationLegend$fHasStyleLegend$fHasVisibilityLegend$fDefaultLegend$fHasPlacementLegend$fHasGapLegend$fHasLegendLegendb HasAxisLineaxisLine axisLineTypeaxisLineArrowOpts axisLineStyleAxisLine AxisLineType BoxAxisLine LeftAxisLineMiddleAxisLine RightAxisLine NoAxisLine$fDefaultAxisLine$fHasVisibilityAxisLine$fHasAxisLinefAxisLine$fDefaultAxisLineType$fShowAxisLineType$fEqAxisLineType HasTickLabels tickLabeltickLabelTextFunctiontickLabelFunctiontickLabelStyle tickLabelGap TickLabels HasAxisLabel axisLabel axisLabelTextaxisLabelTextFunction axisLabelGapaxisLabelStyleaxisLabelPositionaxisLabelPlacement AxisLabelAxisLabelPlacementInsideAxisLabelOutsideAxisLabelAxisLabelPositionMiddleAxisLabelLowerAxisLabelUpperAxisLabel TextFunctiontickLabelPositions atMajorTicks$fHasVisibilityTickLabels$fDefaultTickLabels$fHasGapTickLabels$fHasTickLabelsfTickLabelsb$fDefaultAxisLabel$fHasGapAxisLabel$fHasVisibilityAxisLabel$fHasStyleAxisLabel$fHasAxisLabelfAxisLabelb HasGridLines gridLines GridLinesHasMinorGridLinesminorGridLinesminorGridLinesFunctionminorGridLinesStyleMinorGridLinesHasMajorGridLinesmajorGridLinesmajorGridLinesFunctionmajorGridLinesStyleMajorGridLinesGridLineFunctiononTicksGridLineFunctionemptyGridLineFunctiongridLinesVisible hideGridLines showGridLinesgridLinesStyle$fHasStyleGridLines$fHasMinorGridLinesfGridLines$fHasMajorGridLinesfGridLines$fDefaultGridLines$fHasGridLinesfGridLines$fHasStyleMinorGridLines$fHasVisibilityMinorGridLines$fDefaultMinorGridLines"$fHasMinorGridLinesfMinorGridLines$fHasStyleMajorGridLines$fHasVisibilityMajorGridLines$fDefaultMajorGridLines"$fHasMajorGridLinesfMajorGridLines HasColourBar colourBar colourBarDrawcolourBarWidthcolourBarLengthFunction colourBarGapcolourBarStyle defColourBar addColourBarrenderColourBargradientColourBar pathColourBar$fHasVisibilityColourBar$fHasTickLabelsfColourBarb$fHasMajorTicksfColourBar$fHasStyleColourBar$fHasOrientationColourBar$fHasPlacementColourBar$fHasGapColourBar$fHasColourBarColourBarbP3LikeP2Like PointLike pointLike unpointLikeV3LikeV2Like VectorLike vectorLike unvectorLike EuclideanHasIndexedBasis$fPointLikeV3n(,,)$fPointLikeV2nComplex$fPointLikeV2n(,)$fPointLikeV2nV2$fPointLikevnPoint$fVectorLikeV3n(,,)$fVectorLikeV3nV3$fVectorLikeV2nComplex$fVectorLikeV2n(,)$fVectorLikeV2nV2Polar $fMonadPolar$fFunctorPolar$fMonadFixPolar$fApplicativePolar$fTraversablePolar$fGeneric1Polar$fMonadZipPolar$fFoldablePolarHasYy_xy_HasXx_Circle_azimuth_polarRadial_radialmkPolarpolarunpolarpolarIsopolarV2 interpPolarereθetheta$fPointLikeV2nPolar $fHasYPolar$fHasYV3$fHasYV2 $fHasYPoint $fHasXPolar$fHasXV3$fHasXV2 $fHasXPoint $fRadialPolar $fHasRPolar $fCirclePolar$fRepresentablePolar$fDistributivePolar$fWrappedPolar$fRewrappedPolart BaseSpace SingleAxisaxes axisPlots currentPlots finalPlots plotModifieraxisSizecolourBarRangeaddPlot addPlotable addPlotable'r2AxisxAxisxLabelyAxisyLabelzAxiszLabelzMinzMaxrAxisrLabel thetaAxis thetaLabel polarAxis$fHasColourBarAxisb$fHasAxisStyleAxisb$fHasTitleAxisb$fHasLegendAxisb$fHasPlotStylefAxisb$fHasPlotOptionsfAxisb$fHasAxisScalingfAxis$fHasTickLabelsfAxisb$fHasAxisLabelfAxisb$fHasMinorGridLinesfAxis$fHasMajorGridLinesfAxis$fHasGridLinesfAxis$fHasMinorTicksfAxis$fHasMajorTicksfAxis$fHasTicksfAxis$fHasVisibilitySingleAxis$fHasAxisScalingfSingleAxis$fHasMinorGridLinesfSingleAxis$fHasMajorGridLinesfSingleAxis$fHasGridLinesfSingleAxis$fHasAxisLinefSingleAxis$fHasTickLabelsfSingleAxisb$fHasAxisLabelfSingleAxisb$fHasMinorTicksfSingleAxis$fHasMajorTicksfSingleAxis$fHasTicksfSingleAxis$fDefaultSingleAxis MultiBarStateBarPlot HasBarLayout barLayoutbarWidth barSpacingbarStart BarLayoutmkBarsmkFloatingBars mkRunningBars mkStackedBarsmkStackedEqualBars mkGroupedBarsbarPlot' namedBarPlot namedBarPlot'floatingBarPlot groupedBars groupedBars' stackedBarsstackedEqualBars runningBars multiBarsonBars labelBars$fHasLabelsMultiBarState$fHasBarLayoutMultiBarState$fHasOrientationMultiBarState$fHasBarLayoutBarPlot$fPlotableBarPlotb$fEnvelopedBarPlot$fHasOrientationBarPlot$fHasBarLayoutPlot$fHasBarLayoutBarLayout$fHasOrientationBarLayout$fDefaultBarLayoutHasHistogramOptionshistogramOptionsnumBinsbinRangenormaliseSampleHistogramOptionsNormalisationMethod HistogramPlotcomputedHistogrammkComputedHistogramcount probability countDensitypdf cumilativecdfmkHistogramPlot histogramPlothistogramPlot'histogramPlotOfhistogramPlotOf'$fHasHistogramOptionsPlot%$fHasHistogramOptionsHistogramOptions $fHasOrientationHistogramOptions$fDefaultHistogramOptions$fDefaultNormalisationMethod$fHasOrientationHistogramPlot$fPlotableHistogramPlotb$fEnvelopedHistogramPlot RenderAxis renderAxis r2AxisMain buildPlots$fRenderAxisbPolarn$fRenderAxisbV2n$fToResultAxis$fMainableAxis$fMainableAxis0$fShowLabelPosition$fEqLabelPosition HasHeatMapheatMapOptionsheatMapGridVisibleheatMapGridStyle heatMapSize heatMapExtent heatMapStart heatMapCentre heatMapLimits heatMapRender HeatMatrixhmSize mkHeatMatrix mkHeatMatrix'hmPointspixelHeatRenderpixelHeatRender' heatImagepathHeatRender mkHeatMapheatMapheatMap'heatMapIndexedheatMapIndexed'$fPlotableHeatMapb$fEnvelopedHeatMap$fHasHeatMapfPlotb$fHasHeatMapfHeatMapb trailPlot trailPlot'pathPlot pathPlot'linePlot linePlot'smoothLinePlotsmoothLinePlot'mkTrail mkTrailOfmkPathmkPathOfPieStateHasWedgepieWedgewedgeOuterRadiuswedgeInnerRadius wedgeOffset wedgeWidthwedgeDirectionWedgemkWedgeonWedges wedgeKeyspiePlotpiePlot' wedgePlot$fHasWedgefAxis$fHasWedgefStyledPlot$fHasWedgefDynamicPlot$fHasWedgefPieState$fHasWedgefPlot$fHasWedgefWedge$fPlotableWedgeb$fEnvelopedWedge BubbleOptionsHasScatterOptionsgscatterOptionsscatterTransform scatterStylescatterPositionHasConnectingLineconnectingLineScatterOptions ScatterPlotmkScatterOptionsscatterOptions scatterPlot scatterPlot' scatterPlotOfscatterPlotOf' bubblePlot bubblePlot' bubblePlotOf bubblePlotOf' bubbleOptionsbubbleTransform bubbleStyle gscatterPlotgscatterOptionsFor$fHasScatterOptionsfAxisa $fHasScatterOptionsfDynamicPlota$fHasScatterOptionsfPlota $fHasScatterOptionsfScatterPlotd$$fHasScatterOptionsfScatterOptionsd'$fHasConnectingLinefAxis$fHasConnectingLinefStyledPlot$fHasConnectingLinefDynamicPlot$fHasConnectingLinefPlot$fHasConnectingLinefScatterPlot"$fHasConnectingLinefScatterOptions$fPlotableScatterPlotb$fEnvelopedScatterPlottransformers-0.5.2.0Control.Monad.Trans.State.LazyStateTDiagrams.TrailLike fromVertices'diagrams-core-1.4-WU3soLJxBWDqfj6WqDfHxDiagrams.Core.StyleStyle Diagrams.PathPath filledMarkersDiagrams.TwoD.ShapessquarebaseGHC.BaseNothing#colour-2.3.3-1clKnMqHWhQAElTFd8YdypData.Colour.Internal transparent _plotColour _lineStyle _markerStyle _areaStyle _textStyle _plotMarkerp1apply1data-default-class-0.1.2.0-FYQpjIylblBDctdkHAFeXAData.Default.ClassDefault"lens-4.15.1-GIqMfFkWZyYIqq1QNYTt5ZControl.Lens.TypeLens'$linear-1.20.5-ALqHTYew01KD1PdDd6TYmz Linear.V2V2ghc-prim GHC.TypesDoubleMaybeJust asSizeSpec vectorScalingScalingasRatioasMode asEnlarge asBoundMin asBoundMaxasSize asLogScaleasBackupBoundMaxasBackupBoundMinDiagrams.Core.NamesNamememptyTrueDiagrams.BoundingBox BoundingBox dirBetween'StringStateFalsepoName poClipPlotpoLegend poVisible poTransformlPiclText lPrecedencepInsidespecRectDiagrams.AttributeslwO mitFunctionmitAlign mitLengthmitStyle mitVisible matFunctionmatAlign matLengthmatStyle matVisiblelog10tVisibletTxttTxtFuntStyle tPlacementtGap lPlacementlGaplStylelSpacing lTextWidthlTextF lTextStyle lOrientationlVisiblealType alArrowOpts alVisiblealStyle Traversal'Diagrams.TwoD.TextmkText floatShowfontSizeDiagrams.Core.MeasureoutputFloattlFun tlTextFuntlStyletlGap tlVisiblealFunalTextalGapalPos alPlacementBoolmajGridminGridmigFunmigStyle migVisiblemagFunmagStyle magVisibleid cbPlacement cbVisiblecbTicks cbGridLines cbTickLabelscbDrawcbWidth cbLengthFuncbGapcbStyleflipX_Y_reflectionX_Y _reflectX_YIso' Linear.AffinePoint Linear.V3V3 Linear.V1R1Diagrams.AngleAngleR2 polarWrapperD:R:UnwrappedPolarLensLike _axisStyle _colourBar _colourBarR_legend _axisTitle _axisPlots _plotModifier_axessaLabelsaLine saTickLabel saScaling saGridLinessaTicks saVisible mbsLayoutmbsMods mbsLabels mbsBarFunrectBbarLayoutAxisLabels HasLabelslabelsbpDatabpLayoutbOrientbWidthbSpacingbStart _reflectionXY _reflectXYmultiFunrectBLhBinshRangehNormoOrientNMrunNMhWidthhStarthValueshOrientrange LabelPositionDiagrams.Backend.CmdLinemainWithboundingRadiusRAxisPos LowerAxis MiddleAxis UpperAxisNoLabels LowerLabels LeftLabels RightLabels UpperLabels renderR2Axis axisOnBasisgetAxisLinePoseprenderPolarAxis drawPolarAxisorigin&vector-0.11.0.0-6uB77qGCxR6GPLxI2sqsX3Data.Vector.Unboxed.BaseVector(JuicyPixels-3.2.8-2m7yVK9j51UF1F7dRciij5Codec.Picture.Types ImageRGB8 scaleImageDiagrams.TrailTrailInthMatrixhSizehGridSty hGridVisiblehLimitshDraw _hmVector hmBoundLower hmBoundUpperhmFoldmkColourVector colourToPixelscaleVDiagrams.CubicSpline cubicSplinepsModssEndRsStartRsOffsetsDirsWidth stateModsFoldDiagrams.Core.TransformscaleSetter'TransformationoDataoPosoTroStyoLine