x      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS 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{|}~(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  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  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 5 WUmbrella 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./ between  and its tuple form.0 Numerical  between  and .12Polar interpolation between two polar coordinates.5Does not satify lens laws.%"#$%&'()*+,-./0123456789:;<=>?@AB"#$%&')(*+,-./01234,-./01*+'()%&"#$234"#$%&'()*+,-./0123456789:;<=>?@ABNone 9:;<=DREJSimilar to '(%=)' but takes a state modification instead of a function.F!Similar to '(&~)' but works with  and returns it in m.GenumFromToN a b n calculates a list from a to b in n steps.H*Apply a function if the predicate is true.IType specialised version of .JMinmax of a getter in the form  V2 min max . Returns (V2 (-Infinity) Infinity) for empty folds.EFGHIJEFGHIJIJGHEFEFGHIJE3F1(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"$09:;<=?DORT.KZA map from a number (usually between 0 and 1) to a colour. Colour maps are part of the P", which is used for plots like .LClass of things that have an P.MLens onto the P.NThe K is used to draw the  and render plots like .OTraversal over the `s in an P,. There are always an infinite number of `s in an P.PThe P determines the as of the plots in an axis. There are various predifined styles to change the look of the plot.Q!Class for objects that contain a `.RLens onto the `.SThe SK is the overall colour of the plot. This is passed to the other styles (U, W1 etc.) to give an overall colour for the plot.T Alias for S.UBThis style is applied to any plots made up of lines only (like . plots). This is a less general version of V.V A version U with access to the current S when a is used.WAThis style is applied to any markers in the plot (usually the ](). This is a less general version of X.X A version U with access to the current S when b is used.Y=This style is applied to any filled areas in a plot (like  or (). This is a less general version of Z.Z A version Y with access to the current S when c is used.[JThis style is applied to text plots. This is a less general version of \.\ A version [ with access to the current S when c is used.]7This diagram is used as any markers in a plot (like ). The W? will be applied to this marker when the plot gets rendered.^!A traversal over all the styles (U, W, Y and [) of a `&. This is a less general version of _._ A version of ^ with access to the S.`:Plot styles are used to style each plot in an axis. Every Axis8 comes with a list of plots styles (contained in the P0) which get applied the plots upon rendering.;You can either change the list of plot styles used with M: 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 (U, W, Y and [) a S and a ]. When rendering a plot, the ` s in an Pe are used to style each plot. The lenses can be used to customise each style when adding the plot.S$ - the underlying colour of the plotU - style used for lines (linePlot, connectingLine in a  scatterPlot)Y - style used for any area (barPlot, piePlot,  histogramPlot)W - style used for markers in  scatterPlot] - marker used in  scatterPlota Apply the U from a `. KapplyLineStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t b Apply the W from a `. MapplyMarkerStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t cApply the 'areaStyle from a `. KapplyLineStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t d Apply the [ from a `. KapplyTextStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t e Theme using  funColours" with faded fills and thick lines. Ldiagrams/src_Plots_Style_fadedColourPic.svg#diagram=fadedColourPic&width=600f Theme using  funColours with no lines on 'areaStyle. Ldiagrams/src_Plots_Style_vividColourPic.svg#diagram=vividColourPic&width=600g@Theme without any colours, useful for black and white documents. Pdiagrams/src_Plots_Style_blackAndWhitePic.svg#diagram=blackAndWhitePic&width=600h A colourful colour set used for e.iAnother colour set, used for f.'Markers which have a filling, used for e and f.jk( markers with varying numbers of prongs.kMake an asterisk with n spokes, each of length l.l A rotated .m A rotated n.n Filled in + symbol.o'A filled in five sided start of size x.qWIndexed traversal over the colours indexed and ordered by their position in the map.r`Return the list of colours in the [0,1] range in order. This always includes colours 0 and 1.v!A colour map from black to white. @diagrams/src_Plots_Style_greysBar.svg#diagram=greysBar&width=600w The magma colour map taken from  https://bids.github.io/colormap/. @diagrams/src_Plots_Style_magmaBar.svg#diagram=magmaBar&width=600x"The inferno colour map taken from  https://bids.github.io/colormap/. Ddiagrams/src_Plots_Style_infernoBar.svg#diagram=infernoBar&width=600y!The plasma colour map taken from  https://bids.github.io/colormap/. Bdiagrams/src_Plots_Style_plasmaBar.svg#diagram=plasmaBar&width=600z"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=600{ == FKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz0PLMNOefg`QRSTUVWXYZ[\]^_abcdhiklmonjKpqstruzwxyv,KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None0  (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone !"29;<=DR/Should the axis be on a logarithmic scale. The  is .Class of things that have an ."The way to scale in one direction.nThe ratio relative to other axis. If no ratios are set, the ratio is not enforced. If at least one is set,  ratios are 1.PThe mode to determine how to scale the bounds in a direction. Choose between , ,  or . is .Whether the axis uses  or . is .KHow much to extend the bounds over infered bounds. This is ignored if a  or  is set.jThe maximum bound the axis. There are helper functions for setting a minimum bound for a specific axis.  ::  (Axis b  ) ( )  ::  (Axis b  ) ( )  Default is .dThe 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.?>How the axis should be scaled when not all dimensions are set.2Do not extend the axis beyond the inferred bounds.#Calculating the bounds for an axis.#Calculate the scaling for the axis.The result returns:The final bounds for the axisscale to match desired scale to match desired   KScale transformation using the respective scale coefficients in the vector. *Apply a function if the predicate is true.Log the number for , do nothing for .QTransform a point according to the axis scale. Does nothing for linear scales.PDeform an object according to the axis scale. Does nothing for linear scales.0  Scaling to use for this axis Inferred bounds (from any plots)+Lower and upper bounds to use for this axisaxis scaling options bounding box from the axis plots       (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone%&09:;<=?DOQRT7Information 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)]./0123456789:;<=>?_ !"#$%&'()*+,-_%#$&'()*+,-!" ^ !"#$%&'()*+, !"#$%&'()*+-,-./0123456789:;<=>?None09:;<=?DORT ALens onto the J of something.BThe  of the legend relative to the #.C(The gap between the legend and the axis.D6The style applied to the surronding box of the legend.E*The spacing between entries in the legend.F+The space given for the text in the legend.G)The function to generate the legend text.H%The style applied to the legend text.I^The way the legend entries are listed. (This will likely be replaced by a grid-like system)JJThe data type to describe how to draw a legend. For legend entries see .KQDraw a legend to the bounding box using the legend entries and legend options.@ABCDEFGHIJ./01234567K$bounding box to place legend against%diagram pictures along with their keyoptions for drawing the legendrendered legendLMNOPQR @ABCDEFGHIJK J@ABCDEFGHIK @ ABCDEFGHIJ ./01234567KLMNOPQR (C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 09:;<=?DORTUJThe text used for the title. If the string is empty, no title is drawn. Default is ""VThe style applied to the title. Default is .W,The placement of the title against the axis. Default is .X'The gap between the axis and the title. Default is .Z6Render the title and place it around the bounding box.STUVWXY89:;<=>Z[\]^_SWTUVXYZYSTUVWXZSTUVWXY89:;<=>Z[\]^_ (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone09:;<=DORT `Class of things with both p and i.bBoth p and i together.c#Class of things that have a single i.dLens onto the i of something.eGThe function used to place ticks for this axis, given the result of l and the bounds of the axis. Default is linearMinorTicks 3.f-Alignment of the minor ticks. Choose between t (default), u, w or x.g!The total length the minor ticks. Default is 3.h)The style used to render the minor ticks. Default is ? 0.4  (subject to change).i!The small ticks on the axis line.jClass of things that have a p.kLens onto the p of something.lThe 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 i, MajorGridLines and MinorGridLines. Default is linearMinorTicks 5.m-Alignment of the major ticks. Choose between t (default), u, w or x.n!The total length the major ticks. Default is 7.o)The style used to render the major ticks. Default is ? 0.6  (subject to change).pThe big ticks on the axis line.q5Set the portion of the tick above and below the axis.t7Set the tick type depending on the axis line position.  centreTick for  middleAxis,  insideTick for everything else.ucSet the tick to be in the centre of the axis with total length of the corresponding tick length.v Synonym for u.w(Align the ticks to be inside a box axis.x)Align the ticks to be outside a box axis.y3Traversal over both major and minor tick alignment.z0Traversal 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 | :: b v n -> b v n | :: i v n -> i v n }NSetter over the final positions the major ticks. This is not as general as l 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 e 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.<`ab@cdefghiABCDEFjklmnopGHIJKLqrstuvwxyz{|}~-Number of minor ticks between each major tickPositions of major ticksBoundsMinor tick positions$Allowed numbers (up to powers of 10)desired number of ticksboundstick positionsM#`abcdefghijklmnopqrstuvwxyz{|}~#pjklmnoicdefghb`ayz{qrstuvwx|}~"`ab@cdefghiABCDEFjklmnopGHIJKLqrstuvwxyz{|}~M (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 09:;<=?DRClass of object that have an .Lens onto the ..The position of the axis line around the axis. is .GThe options for if you want the axis line to have arrows at the end. is .'XXX (feature not currently implimented)The  applied to the axis line3Information about position and style of axis lines.4Where axis line for coordinate should be drawn. The  is .NOPQR  NOPQR (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 09:;<=?DRVThe options for the label of ticks. This can be used on various levels of the axis:  :: S (Tick b c n) ( ( BaseSpace c) n)  ::  ( SingleAxis b v n) ( v n)  ::  ( TickLabel v n) ( v n) The  to render the text. is T.Tick 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  UThe  to use on the rendered text. is V (W 11).-The gap between the axis and the tick labels. is 12.YThe options for the label of the axis. This can be used on various levels of the axis:  :: S (Axis b c n) ( ( BaseSpace c) n)  ::  ( SingleAxis b v n) ( v n)  ::  ( v n) ( v n) 'The text to use when labeling the axis.The & to render the text of the axis label.RThe gap between the axis and the labels, in the direction corresponding to the .The  to use on the rendered text.8The position the label will be placed parallel the axis.FWhether the axis label should be placed inside or outside the axis. Whether the % should be inside or ouside the axis.The position of the  along the axis.~Function to render the axis label from a string. This is very basic now and will be replace by a more sophisticated system.NSetter 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.UNumbers are shown as XYs to reduce the chance of numbers like 1.30000000008. (This is not an ideal solution.)Make a TickLabelFunctionI by specifying how to draw a single label from a position on the axis.2YZ[\]^_`abcdefUYZ[\]^_`abcdefU (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:  :: S (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:  :: S (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.  :: S (Axis b c n) g  :: S ( SingleAxis b v n) g  :: S ( v n) g %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.,hijklmnopqrhijklmnopqr(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 N 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 s.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 K is stored in the PJ. 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#tuvwxyz{|}~bounding box to place againstoptions for colour bar map to use&bounds of the values on the colour barlength of the colour bar   tuvwxyz{|}~(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):M - customise the PA - customise the J - 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  ). - customise the i - customise the d - customise the ik - customise the p - customise the  - customise the  - 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   . . 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   . .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  . .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  . .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  . .Lthe plotadd plot to the  the raw plotchanges to the plotadd plot to the  the raw plotadd plot to the       !"#$%&'()*+,-./012345            ;       !"#$%&'()*+,-./012345(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone$09:;<=DORT\!The position of axis labels for a6Renderable axes.7MRender an axis to a diagram. The size of the diagram is determined by the .8 specialised to a 2D Axis.9aBuild a list of styled plots from the axis, ready to be rendered. This takes into account any P changes and applies the  modifications.The  StyledPlots can be rendered with +0 and the legend entries can be obtained with -. This is what 7X 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 6A class provides a default way to render an axis for each space.6789:;<=>678967896789:;<=>(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"$09:;<=DLR!AThe A 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 ofT) - Together in grouped (the default)V - On on top of anotherW - V with the same heightX+ - each group of bars follows the last Modify the  and ` of groups of bars with Z..Modify the layout of the (groups of) bars with - Horizontal or vertical barsE% - Width of each (group of) bar(s)F( - Space between each (group of) bar(s)G" - Start of centre of first bar(Add labels to each (group of) bars with [.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 plotsBXA bar plot for a single set of bars. Multi-bar plots are achieved by having multiple Bos. Each bar plot corresponds to a single legend entry. To get multiple bar entries/colours, use multiple BarPlotsC'Class of things that have a modifiable H.DLens onto the HEXThe width bar for single / stacked bars or the width of a group for grouped bar plot. Default is 0.8F.The spacing between each bar or group of bars. Default is 1G6The distance from the axis to centre of the first bar. Default is 1HTThe 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.I)Create equidistant bars using the values.JACreate equidistant bars with lower and upper bounds for each bar.KNCreate uniform bars from groups of data, placing one group after the other.LpCreate 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.M Similar to mkMultiStacked but stack has the same height.NeMake 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.OA add B 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 barAxisPSimple version of O! 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'QA add B 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 namedBarAxisRSimple version of Q! 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'SSame as O. but with lower and upper bounds for the bars.TCBars that are grouped together such that each group is a single E_. 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=400UCBars that are grouped together such that each group is a single EM. The parameter is the multiplier for the width of individual bars, where T 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=400V"Bars stacked on top of each other.Example Ydiagrams/src_Plots_Types_Bar_stackedBarsExample.svg#diagram=stackedBarsExample&height=400WIBars stacked on top of each other where every bar is the given height.Example cdiagrams/src_Plots_Types_Bar_stackedEqualBarsExample.svg#diagram=stackedEqualBarsExample&height=400XNormal bars& where each data set follows the last.Example Ydiagrams/src_Plots_Types_Bar_runningBarsExample.svg#diagram=runningBarsExample&height=400Y/Construct multiple bars, grouped together. See A; 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 H by changing that axisTickLabels%, using the provided string in order.ZUGiven the data for the bar, modify the properties for the bar that uses that data.$Some common functions to use on the :S - change the colour of the barsY - modify the style of the bars, - add a legend entry for that group of bars[=Labels to use for each bar (or group of bars) along the axis.:ABCDEFGHIJKLMvalue each bar reachesvaluesN.width factor of individual bars (1 = touching)O bar heightschanges to the barschanges to the P bar heightschanges to the Qbar heights with namechanges to the barschanges to the Rbar heights with nameadd plot to the S bar limitschanges to the barsTUVWXYdata for multi plot&extract bar heights from each data set!state to make changes to the plotchanges to the Z Modifier the  and `- for the bars associated with the data from a.(Changes to each data set when executing Y.[\]^_`abcdefABCDEFGHIJKLMNOPQRSTUVWXYZ[BOPQRSHCDEFGYATUVWXZ[IJKLMN(ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone!"09:;<=?DORTh-Options for building the histogram from data.iHThe number of bins (bars) to use for the histogram. Must be positive. is 10.jdThe range of data to consider when building the histogram. Any data outside the range is ignored. is .kGShould the resulting histogram be normalised so the total area is 1. is False.l`Options for binning histogram data. For now only very basic histograms building is supported.mIThe way to normalise the data from a histogram. The default method is q.n.Simple histogram type supporting uniform bins.@Construct a rectangle of size v with the bottom left at point p.o;Plot an already computed histogram with equally sized bins.p Construct a n from raw histogram data.qEThe height of each bar is the number of observations. This is the  method.Example Kdiagrams/src_Plots_Types_Histogram_countDia.svg#diagram=countDia&height=350r1The sum of the heights of the bars is equal to 1.Example Wdiagrams/src_Plots_Types_Histogram_probabilityDia.svg#diagram=probabilityDia&height=350sThe 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=350tThe 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=350uThe 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=350vCumulative 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=350w4Create a histogram by binning the data using the l.xAdd a n 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 histogramAxisyMake a n% without changes to the plot options.zAdd a n using a fold over the data.{Same as z! without any changes to the plot.-ghijklmnostart of first binwidth of each binheights of the binspstart of first binwidth of each binheights of the binsqrstuvw"Number of bins (must be positive).Sample data (cannot be empty).xdatachanges to plot optionsadd plot to axisydataadd plot to axiszfold over the data data to foldchange to the plotadd plot to the {|}~ghijklmnopqrstuvwxyz{nolghijkmqrstuvxyz{pwghijklmnopqrstuvwxyz{|}~(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 K and b is the end of the K . 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 K. 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 :S - change the colour of the barsY - 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 U 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"#$%&')(*+,-./01234EFKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz !"#$%&'()*+,-@ABCDEFGHIJKSWTUVXYZ`abcdefghijklmnopqrstuvwxyz{|}~     6789ABCDEFGHIJKLMNOPQRSTUVWXYZ[ghijklmnopqrstuvwxyz{EF%&'%&()*+,-./0123456789:;<=>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01233456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs t u v w x y z { | } ~                                                                                                                                             # !"#$%&'() *+!,-./01"23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh$ijklmnopqrstuvwxyz{|}~     %%%% !"#$%qv&'()*+,-./0123 !4 !567n89:;<=>?@ABC !D12E%FGH !IJ12KLMNOPQRST245UkVWXYZ[\]^ z _ ` a b c d%ef   g h i j k  l m n o p q  r s t uv%wx y%wz{|12}  ~        u    t12            !#%[\b%12%  $plots-0.1.0.0-CUz4D0JotHJBtbEjzqNaDXDiagrams.Coordinates.PolarDiagrams.Coordinates.Isomorphic Plots.Util Plots.Style Plots.NamePlots.Axis.Scale Plots.Types Plots.LegendPlots.Axis.TitlePlots.Axis.TicksPlots.Axis.LinePlots.Axis.LabelsPlots.Axis.GridPlots.Axis.ColourBar Plots.AxisPlots.Axis.RenderPlots.Types.BarPlots.Types.HistogramPlots.Types.HeatMapPlots.Types.LinePlots.Types.PiePlots.Types.ScatterHeatMap ColourBarPlotsBar Plots.StylesRibbonScatterxMinyMinxMaxyMaxrMaxAxisbarPlot+diagrams-lib-1.3.1.3-DIZr6sZYT4NFVKVGbIpHvADiagrams.TwoD.Types_rHasRP3LikeP2Like 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&=&~~ 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$fPlotableQDiagramb HasLegendlegendlegendPlacement legendGap legendStyle legendSpacinglegendTextWidthlegendTextFunctionlegendTextStylelegendOrientationLegend drawLegend$fHasOrientationLegend$fHasStyleLegend$fHasVisibilityLegend$fDefaultLegend$fHasPlacementLegend$fHasGapLegend$fHasLegendLegendbHasTitletitle titleText titleStyletitlePlacementtitleGapTitle drawTitle$fHasTitleTitleb$fHasPlacementTitle $fHasGapTitle$fHasVisibilityTitle$fDefaultTitleHasTicks 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$fEqTicksAlignment 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$fHasColourBarColourBarb 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 RenderAxis renderAxis r2AxisMain buildPlots$fRenderAxisbPolarn$fRenderAxisbV2n$fToResultAxis$fMainableAxis$fMainableAxis0$fShowLabelPosition$fEqLabelPosition 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 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$fEnvelopedScatterPlot lens-4.14-6NeSDfeXgEcBWgmKHkYrH3Control.Lens.TypeIso'$linear-1.20.5-Bu0PUNaKHuO8HvjMjGEiut Linear.AffinePoint Linear.V2V2 Linear.V3V3 Linear.V1R1Diagrams.AngleAngleR2 polarWrapperD:R:UnwrappedPolartransformers-0.5.2.0Control.Monad.Trans.State.LazyStateTDiagrams.TrailLike fromVertices,diagrams-core-1.3.0.8-Ek7cyctDg6s5FJz0I5l5MsDiagrams.Core.StyleStyle Diagrams.PathPath filledMarkersDiagrams.TwoD.ShapessquarebaseGHC.BaseNothing#colour-2.3.3-1clKnMqHWhQAElTFd8YdypData.Colour.Internal transparent _plotColour _lineStyle _markerStyle _areaStyle _textStyle _plotMarkerp1apply/data-default-class-0.1.1-JLnsVzgFbou1sR68492FigData.Default.ClassDefaultLens'ghc-prim GHC.TypesDoubleMaybeJust asSizeSpec vectorScalingScalingasRatioasMode asEnlarge asBoundMin asBoundMaxasSize asLogScaleasBackupBoundMaxasBackupBoundMinDiagrams.Core.NamesNamememptyTrueDiagrams.BoundingBox BoundingBox dirBetween'StringStateFalsepoName poClipPlotpoLegend poVisible poTransformlPiclText lPrecedencepInsidespecRect lPlacementlGaplStylelSpacing lTextWidthlTextF lTextStyle lOrientationlVisibletVisibletTxttTxtFuntStyle tPlacementtGapDiagrams.AttributeslwO mitFunctionmitAlign mitLengthmitStyle mitVisible matFunctionmatAlign matLengthmatStyle matVisiblelog10alType alArrowOpts alVisiblealStyle Traversal'Diagrams.TwoD.TextmkText floatShowfontSizeDiagrams.Core.MeasureoutputFloattlFun tlTextFuntlStyletlGap tlVisiblealFunalTextalGapalPos alPlacementBoolmajGridminGridmigFunmigStyle migVisiblemagFunmagStyle magVisibleid cbPlacement cbVisiblecbTicks cbGridLines cbTickLabelscbDrawcbWidth cbLengthFuncbGapcbStyleflipX_Y_reflectionX_Y _reflectX_YLensLike _axisStyle _colourBar _colourBarR_legend _axisTitle _axisPlots _plotModifier_axessaLabelsaLine saTickLabel saScaling saGridLinessaTicks saVisible LabelPositionDiagrams.Backend.CmdLinemainWithboundingRadiusRAxisPos LowerAxis MiddleAxis UpperAxisNoLabels LowerLabels LeftLabels RightLabels UpperLabels renderR2Axis axisOnBasisgetAxisLinePoseprenderPolarAxis drawPolarAxis mbsLayoutmbsMods mbsLabels mbsBarFunrectBbarLayoutAxisLabels HasLabelslabelsbpDatabpLayoutbOrientbWidthbSpacingbStart _reflectionXY _reflectXYmultiFunrectBLhBinshRangehNormoOrientNMrunNMhWidthhStarthValueshOrientrangeorigin&vector-0.11.0.0-6uB77qGCxR6GPLxI2sqsX3Data.Vector.Unboxed.BaseVector*JuicyPixels-3.2.7.1-6Wo4pa4Yjr1Aq0xeaTM85iCodec.Picture.Types ImageRGB8 scaleImageDiagrams.TrailTrailInthMatrixhSizehGridSty hGridVisiblehLimitshDraw _hmVector hmBoundLower hmBoundUpperhmFoldmkColourVector colourToPixelscaleVDiagrams.CubicSpline cubicSplinepsModssEndRsStartRsOffsetsDirsWidth stateModsFoldDiagrams.Core.TransformscaleSetter'TransformationoDataoPosoTroStyoLine