!A      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./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 { | } ~                                                                                                                                            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone %,8=>?@ACHV6Fplots+Things that are isomorphic to points in R2.plots 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.plotsIsomorphism from  v n to something  a.#mkP2 3 5 ^. pointLike :: (Int, Int)(3,5)plotsIsomorphism from something  a to  Point v n.%((3, 5) :: (Int, Int)) ^. unpointLike P (V2 3 5) plots 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. plotsIsomorphism from  Point v n to something  a."V2 3 5 ^. vectorLike :: (Int, Int)(3,5) plotsIsomorphism from something  a to  Point v n.&((3, 5) :: (Int, Int)) ^. unvectorLikeV2 3 5 plotsWUmbrella 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-portableNone24567=>?@AHMVH! "plotsfCoordinate with at least two dimensions where the x and y coordinates can be retreived numerically.%plotsCoordinate with at least one dimension where the x coordinate can be retrieved 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 retrieved numerically.'plots+Space which has a radial and angular basis.*plotsSpace 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.,plots Construct a  from a magnitude and an .-plots Construct a  from a magnitude and  tuple..plotsTurn a  back into a magnitude and  tuple./plots between  and its tuple form.0plots Numerical  between  and .1plots2Polar interpolation between two polar coordinates.5plotsDoes not satify lens laws."#$%&')(*+,-./01234,-./01*+')(%&"#$234(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone "#4=?@AHVhEplots/Should the axis be on a logarithmic scale. The  is F.HplotsClass of things that have an T.Iplots"The way to scale in one direction.JplotsnThe ratio relative to other axis. If no ratios are set, the ratio is not enforced. If at least one is set,  ratios are 1.KplotsPThe mode to determine how to scale the bounds in a direction. Choose between [, \, ] or ^. is [.LplotsWhether the axis uses G or F. is F.MplotsKHow much to extend the bounds over infered bounds. This is ignored if a O or N is set.NplotsjThe maximum bound the axis. There are helper functions for setting a minimum bound for a specific axis.  ::  (Axis b  ) ( )  ::  (Axis b  ) ( )  Default is .OplotsdThe maximum bound the axis. There are helper functions for setting a maximum bound specific axis.  ::  (Axis b  ) ( )  ::  (Axis b  ) ( )  ::  (Axis b 'Polar ) ( )  Default is .Pplots*The size of the rendered axis. Default is  400.Qplots9How much to extend the bounds beyond any inferred bounds.TplotsTData type used that concerns everything to do with the size or scale of the axis.Uplots?Zplots>How the axis should be scaled when not all dimensions are set._plots2Do not extend the axis beyond the inferred bounds.`plots#Calculating the bounds for an axis.aplots#Calculate the scaling for the axis.The result returns:The final bounds for the axisscale to match desired Jscale to match desired plots*Apply a function if the predicate is true.bplotsLog the number for G, do nothing for F.cplotsQTransform a point according to the axis scale. Does nothing for linear scales.`plotsScaling to use for this axisplots Inferred bounds (from any plots)plots+Lower and upper bounds to use for this axisaplotsaxis scaling optionsplots bounding box from the axis plotsEGFHIJKLMNOPQSRTUVWXYZ[\]^_`abcTZ[\]^UVWXYQSR_HIJKLMNOPEGFbc`aNone2j;(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone"#%2=>?@ACHSVX=4pplotsZA map from a number (usually between 0 and 1) to a colour. Colour maps are part of the {", which is used for plots like .rplotsColours to use when displaying NaN, Infinity and  -Infinity.splotsColour to use when displaying NaN.Default is 'white.tplotsColour to use when displaying Infinity. Default is .uplotsColour to use when displaying  -Infinity. Default is .vplots!Colours to use when representing NaN, Infinity and  -Infinity.wplotsClass of things that have an {.xplotsLens onto the {.yplotsThe p is used to draw the  and render plots like .zplotsTraversal over the s in an {,. There are always an infinite number of s in an {.{plotsThe { determines the as of the plots in an axis. There are various predefined styles to change the look of the plot.|plots!Class for objects that contain a .}plotsLens onto the .~plotsThe ~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.plots Alias for ~.plotsBThis style is applied to any plots made up of lines only (like . plots). This is a less general version of .plots A version  with access to the current ~ when  is used.plotsAThis style is applied to any markers in the plot (usually the (). This is a less general version of .plots A version  with access to the current ~ when  is used.plots=This style is applied to any filled areas in a plot (like  or  (). This is a less general version of .plots A version  with access to the current ~ when  is used.plotsJThis style is applied to text plots. This is a less general version of .plots A version  with access to the current ~ when  is used.plots7This diagram is used as any markers in a plot (like !). The ? will be applied to this marker when the plot gets rendered.plots!A traversal over all the styles (, ,  and ) of a &. This is a less general version of .plots A version of  with access to the ~.plots: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 x: 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  scatterPlotplots Apply the  from a . GapplyLineStyle :: (InSpace v n t, HasStyle t) => PlotStyle v -> t -> t plots Apply the  from a . IapplyMarkerStyle :: (InSpace v n t, HasStyle t) => PlotStyle v -> t -> t plotsApply the 'areaStyle from a . GapplyLineStyle :: (InSpace v n t, HasStyle t) => PlotStyle v -> t -> t plots Apply the  from a . GapplyTextStyle :: (InSpace v n t, HasStyle t) => PlotStyle v -> t -> t plots Theme using  funColours" with faded fills and thick lines. Ldiagrams/src_Plots_Style_fadedColourPic.svg#diagram=fadedColourPic&width=600plots Theme using  funColours with no lines on 'areaStyle. Ldiagrams/src_Plots_Style_vividColourPic.svg#diagram=vividColourPic&width=600plots@Theme without any colours, useful for black and white documents. Pdiagrams/src_Plots_Style_blackAndWhitePic.svg#diagram=blackAndWhitePic&width=600plots A colourful colour set used for .plotsAnother colour set, used for .plots'Markers which have a filling, used for  and .plots'Markers which have a filling, used for  and .plots( markers with varying numbers of prongs.plotsMake an asterisk with n spokes, each of length l.plots A rotated .plots A rotated .plots Filled in + symbol.plots'A filled in five sided start of size x.plotsWIndexed traversal over the colours indexed and ordered by their position in the map.plots`Return the list of colours in the [0,1] range in order. This always includes colours 0 and 1.plots!A colour map from black to white. @diagrams/src_Plots_Style_greysBar.svg#diagram=greysBar&width=600plots The magma colour map taken from  https://bids.github.io/colormap/. @diagrams/src_Plots_Style_magmaBar.svg#diagram=magmaBar&width=600plots"The inferno colour map taken from  https://bids.github.io/colormap/. Ddiagrams/src_Plots_Style_infernoBar.svg#diagram=infernoBar&width=600plots!The plasma colour map taken from  https://bids.github.io/colormap/. Bdiagrams/src_Plots_Style_plasmaBar.svg#diagram=plasmaBar&width=600plots"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=600plots == 7pqrstuvwxyz{|}~7{wxyz|}~pvqrstuNone =>?@AHVplotsJSimilar to '(%=)' but takes a state modification instead of a function.plots!Similar to '(&~)' but works with  and returns it in m.plotsenumFromToN a b n calculates a list from a to b in n steps.plots*Apply a function if the predicate is true.plotsType specialised version of .plotsMinmax of a getter in the form  V2 min max . Returns (V2 (-Infinity) Infinity) for empty folds.31(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone&'2=>?@ACHSUVX7plotsInformation from the " necessary to render a .plotsClass of things that have .plotsLens onto the .plotsThe Z applied to the plot. This gives a way to reference a specific plot in a rendered axis. is .plots=Whether the plot should be clipped to the bounds of the axes. is .plots3The legend entries to be used for the current plot. is .plotsGThe transform applied to the plot once it's in the axis coordinates. is .plots-Whether or not the plot should be shown. The ; of the plot will still affect the inferred axis bounds. is .plots9Data type for holding information all plots must contain.plots%Data type for holding a legend entry.plotsyType allowing use of the default legend picture (depending on the plot) or a custom legend picture with access to the .plots#The position relative to the axis. V2 0 0+ corresponds to the bottom left corner, V2 1 1 is the top right corner.plots1The anchor used for the object being positioned. V2 0 0+ corresponds to the bottom left corner, V2 1 1 is the top right corner.plotsThe direction to extend the  when positioning.plotsA PositionN is a point on an axis together with an anchor and a direction for the gap.plots$The value of the gap when rendering.plots)Class of things that have an orientation.plots'Lens onto the orientation of an object.plotsPick the first a if the object has  orientation and the second a if the object has a  orientation.plots8Lens onto whether an object's orientation is horizontal.plots6Lens onto whether an object's orientation is vertical.plotsdirBetween p q returns the directions from p to qplots4A tool for aligned one object to another. Positions b around the bounding box of a by translating b.plots%The picture used in the legend entry.plots"The text used in the legend entry.plotsThe order in which the legend entries are rendered. If precedences are equal, the entries are put in the order they are added to the axis. Default is 0.plots#Make a legend entry with a default  and  0 using the string as the .plotsAdd a  to something with  using the  as the  and a $. Here are some typical examples:  ::  ->  (  ( ScatterPlot v)) ()  ::  ->  (  v) ()  ::  ->  (  v) () 3If you only care about the name of the legend, use .plotsAdd a  to something with $. Here are some typical examples:  ::  v ->  (  ( ScatterPlot v)) ()  ::  v ->  (  v) () 3If you only care about the name of the legend, use .plotsMove origin by applying to  plotTransform.plotsA  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 " plots A wrapped up  , used to store plots in an Axis. plots&A parameterised plot, together with a  L. This type has an instance of many classes for modifying specific plots. plotsA  with modifications to a . plots$Class of objects that can be hidden.plots<Lens onto whether an object should be visible when rendered.plotsThe opposite of .plots,Class defining how plots should be rendered.plotsRender a plot according to the  , using the .plots$The default legend picture when the  is .plotsXScale a number by log10-ing it and linearly scaling it so it's within the same range.plots/Apply log scaling and the transform to a point.plotsSet  to   for the given setter.   minorTicks ::  (Axis v) ()  (xAxis .  gridLines) ::  (Axis v) () plotsSet  to  for the given setter.  minorGridLines ::  (Axis v) ()   colourBar ::  (Axis v) () plotsMake a   with  .plotsLens onto the raw  inside a  .plotsThe modifications to the  and  in a  .plots Prism for a  .plots,Traversal over the dynamic plot without the  constraint  has. plotsThe modifications to the  and  in a  .!plotsrTraversal over a raw plot of a styled plot. The type of the plot must match for the traversal to be successful."plotsGive a   a concrete .#plots Render a  given an and .$plots|Get the legend rendered entries from a single styled plot. The resulting entries are in no particular order. See also %.%plots*Render a list of legend entries, in order.$plots "(z-order, legend pic, legend text)%plots [(legend pic, legend text)]_      !"#$%_     !"#$% None2=>?@ACHSVX$) 9plotsLens onto the B of something.:plotsThe  of the legend relative to the ".;plots(The gap between the legend and the axis.<plots6The style applied to the surronding box of the legend.=plots*The spacing between entries in the legend.>plots+The space given for the text in the legend.?plots)The function to generate the legend text.@plots%The style applied to the legend text.Aplots^The way the legend entries are listed. (This will likely be replaced by a grid-like system)BplotsJThe data type to describe how to draw a legend. For legend entries see .CplotsQDraw a legend to the bounding box using the legend entries and legend options.Hplots-The style for the bounding box of the legend.Cplots$bounding box to place legend againstplots%diagram pictures along with their keyplotsoptions for drawing the legendplotsrendered legend 89:;<=>?@ABC B89:;<=>?@AC(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 2=>?@ACHSVX.NplotsJThe text used for the title. If the string is empty, no title is drawn. Default is ""OplotsThe style applied to the title. Default is .Pplots,The placement of the title against the axis. Default is .Qplots)The function used to draw the title text. Default is  .RplotsThe  2 used for the title text. This is given to the Q. Default is   0.5 0.Splots'The gap between the axis and the title. Default is .Uplots6Render the title and place it around the bounding box. LPMNOQRSTU TLPMNOQRSU (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 2=>?@ACHV:#\plotsClass of object that have an `.]plotsLens onto the `.^plots.The position of the axis line around the axis. is b._plotsGThe options for if you want the axis line to have arrows at the end. is .XXX (feature not currently implimented) axisLineArrowOpts :: Functor f => LensLike' f a (Maybe (ArrowOpts (N a))) axisLineArrowOpts = axisLine . lens alArrowOpts (al sty -> al {alArrowOpts = sty})The  applied to the axis line`plots3Information about position and style of axis lines.aplots4Where axis line for coordinate should be drawn. The  is b. \]^_`abcdef `\]^_abcdef "(C) 2015-2017 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 2=>?@ACHVbpplotsVThe options for the label of ticks. This can be used on various levels of the axis: p ::   (Tick c) (u ( BaseSpace c)) p ::  ( SingleAxis v) (u v) p ::  ( TickLabel v) (u v) qplotsThe  to render the text. is  .rplotsTick labels functions are used to draw the tick labels. They have access to the major ticks and the current bounds. Returns the position of the tick and label to use at that position. is  splotsThe  to use on the rendered text. is  ( 11).tplots-The gap between the axis and the tick labels. is 12.uplotsu8 describes how to draw the labels next to ticks. See o for more options.wplotsYThe options for the label of the axis. This can be used on various levels of the axis: w ::   (Axis b c n) (~ ( BaseSpace c) n) w ::  ( SingleAxis v) (~ v n) w ::  (~ v n) (~ v n) xplots'The text to use when labeling the axis.yplotsThe & to render the text of the axis label.zplotsRThe gap between the axis and the labels, in the direction corresponding to the |.{plotsThe  to use on the rendered text.|plots;The position the label will be placed parallel to the axis.}plotsFWhether the axis label should be placed inside or outside the axis.~plots~O describes the label next to each axis line. They are normally set with the # and $ helper function: myAxis = r2Axis &~ do # .= "time (s)" $ .= "height (m)" See v for more advanced settings.plots Whether the ~& should be inside or outside the axis.plotsThe position of the ~ along the axis.plots~Function to render the axis label from a string. This is very basic now and will be replace by a more sophisticated system.plotsNSetter over the final positions the major ticks. This is not as general as r 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 or to add an extra value: xAxis . tickLabelPositions .= [(1, "apples"), (2, "oranges"), (3, "bananas"] yAxis . tickLabelPositions <>= [(1.5, "critial mass")] .If you want to change or add normal ticks see majorTicksFunction.plotsNumbers are shown as Ys to reduce the chance of numbers like 1.30000000008. (This is not an ideal solution.)plotsMake a TickLabelFunctionI by specifying how to draw a single label from a position on the axis.opqrstuvwxyz{|}~vwxyz{|}~uopqrst (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 2=>?@ACHV@plots?Type holding information about both major and minor grid lines.plots^The options for how to draw the grid lines. This can be used on various levels of the axis:  ::   (Axis b c n) ( ( BaseSpace c) n)  ::  ( SingleAxis b v n) ( v n)  ::  ( v n) ( v n) plotskThe function to calculate location of the minor grid lines given location of the minor ticks and bounds.plots*The style applied to the minor grid lines.plots^The options for how to draw the grid lines. This can be used on various levels of the axis:  ::   (Axis b c n) ( ( BaseSpace c) n)  ::  ( SingleAxis b v n) ( v n)  ::  ( v n) ( v n) plotskThe function to calculate location of the major grid lines given location of the major ticks and bounds.plots*The style applied to the major grid lines.plotsA 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.plotsNPlace grid lines at the same position as the respective ticks. This is the .plotsThe  such that no grid lines appear.See , majorGridLineVisible or minorGridLineVisible) if you just want to hide the grid lines.plots4Traversal over both the major and minor grid styles.  ::   (Axis b c n)   ::   ( SingleAxis b v n)   ::   ( v n)  plots%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 ->  b c n plots%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 ->  b c n plotsdTraversal over both the major and minor grid styles. This can be used at several levels in the axis:plotsHidden by default. (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone2=>?@AHSVX plotsClass of things with both  and .plotsBoth  and  together.plots#Class of things that have a single .plotsLens onto the  of something.plotsGThe function used to place ticks for this axis, given the result of  and the bounds of the axis. Default is linearMinorTicks 3.plots-Alignment of the minor ticks. Choose between  (default), ,  or .plots!The total length the minor ticks. Default is 3.plots)The style used to render the minor ticks. Default is  0.4  (subject to change).plots!The small ticks on the axis line.plotsClass of things that have a .plotsLens onto the  of something.plotsThe 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.plots-Alignment of the major ticks. Choose between  (default), ,  or .plots!The total length the major ticks. Default is 7.plots)The style used to render the major ticks. Default is  0.6  (subject to change).plotsThe big ticks on the axis line.plots5Set the portion of the tick above and below the axis.plots7Set the tick type depending on the axis line position.  centreTick for  middleAxis,  insideTick for everything else.plotscSet the tick to be in the centre of the axis with total length of the corresponding tick length.plots Synonym for .plots(Align the ticks to be inside a box axis.plots)Align the ticks to be outside a box axis.plots3Traversal over both major and minor tick alignment.plots0Traversal over both major and minor tick styles.plots<Traversal over the visibility of both major and minor ticks.plots 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 plotsNSetter 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.plotsNSetter 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.plots4Ticks whose value ends in 1, 0.5, 0.25, 0.2 (*10^n).plots*Place n ticks at powers of 10 on the axis.plots4Place n linear spaced ticks between each major tick.plotszChoose 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.plots-Number of minor ticks between each major tickplotsPositions of major ticksplotsBoundsplotsMinor tick positionsplots$Allowed numbers (up to powers of 10)plotsdesired number of ticksplotsboundsplotstick positions## (C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone"#%=>?@ACHV plotsLens onto the .plotsHow 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 y from  Plots.Style Default is .plotsHThe width (orthogonal to the colour bar direction) of the colour bar. is 20.plots^Set the length of the colour bar given the length of the axis the colour bar is aligned to. is .plotsCGap between the axis and the colour bar (if rendered with an axis). is 20.plots+Style used for the outline of a colour bar.plots@Options for drawing a colour bar. Note that for an axis, the p is stored in the {J. These options are for other aspects of the bar, not the colours used.plotsThe default colour bar.plotsEAdd a colour bar to an object, using the bounding box for the object.plotsHRender a colour bar by it's self at a given width. Note this ignores  and .plotsThe 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=600plots"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=600plotsbounding box to place againstplotsoptions for colour barplots map to useplots&bounds of the values on the colour barplotslength of the colour bar  (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone 2=>?@AHSVX plots[Axis is the data type that holds all the necessary information to render a plot. Common Os used for the axis (see haddock's instances for a more comprehensive list):x - customise the {9 - customise the B - 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 ).w - customise the p - customise the u - customise the  - customise the  - customise the ] - customise the `I - customise the TmPlots are usually added to the axis using specific functions for those plots ('Plots.Types.Line.linePlot, %). These functions use  to add the plot to the axis.plots]This family is used so that we can say (Axis Polar) but use V2 for the underlying diagram.plots*Render information for a single axis line.plots`Lens onto the separate axes of an axis. Allows changing the coordinate system as long as the  is the same.  ::  ( c) (c ( v)) plots(The list of plots currently in the axis. plots-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 .=   plots7Setter 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 .=   plotsLens onto the modifier set by  O. This gets applied to all plots in the axis, just before they are rendered. plots$The size used for the rendered axis. plotsRThe range used for the colour bar limits. This is automatically set when using heatMap or heatMap'plotsAdd a    to an .plotsAdd something  to the ( with a stateful modification of the  .plotsSimple version of  AddPlotable without any changes  .plots"The default axis for plots in the  coordinate system.plots"The default axis for plots in the  coordinate system.plotsLens onto the x-axis of an .plots(The label for the x-axis. Shorthand for  . x.plots2The minimum x value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.plots2The minimum x value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.plotsLens onto the y-axis of an .plots(The label for the y-axis. Shorthand for  . x.plots2The minimum y value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.plots2The minimum y value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.plotsLens onto the z-axis of an .plots(The label for the z-axis. Shorthand for  . x.plots2The minimum z value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.plots2The minimum z value for the axis. If the value if  (the 7), the bounds will be infered by the plots in the axis.plots Lens onto the radial axis of an . plots-The label for the radial axis. Shorthand for  . x.!plots2The 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 c) (Maybe Double) 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."plots Lens onto the radial axis of an .#plots-The label for the radial axis. Shorthand for  . x.plotsthe plotplotsadd plot to the plots the raw plotplotschanges to the plotplotsadd plot to the plots the raw plotplotsadd plot to the !      !"#$!     $ !"#(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone"#&'2=>?@ACHSUVXm*BplotsCA bubble plot is a scatter plot using point together with a scalar.DplotsLens onto the J for a general scatter plot.Eplots;Apply a transform to the markers using the associated data.Fplots7Apply a style to the markers using the associated data.Gplots9Change the position of the markers depending on the data.HplotsClass of things that have a  for a K 's connecting line.Iplotsw onto whether the scatter plot should have a connecting line between points. If the line is present, it uses the  from the .JplotsA general data type for scatter plots. Allows storing different types of data as well as allowing transforms depending on the data.KplotsA general data type for scatter plots. Allows storing different types of data as well as allowing transforms depending on the data.LplotsLow level construction of J.Mplots#Lens onto a scatter plot of points.NplotsAdd a K to the  AxisState from a data set. N :: [(, )] ->  (  (J  (  )) b) () ->  ( ) () N :: [  ] ->  (  (J  (  )) b) () ->  ( ) () N :: [  ] ->  (  (J  (  )) b) () ->  ( ) () 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 V2 scatterAxis = r2Axis &~ do scatterPlot mydata1 $ key "data 1" scatterPlot mydata2 $ key "data 2" scatterPlot mydata3 $ key "data 3" 'scatterExample = renderAxis scatterAxisOplots Version of N without any changes to the J. O :: [(, )] ->  ( b  ) () O :: [  ] ->  ( b  ) () O :: [  ] ->  ( b  ) () 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'Pplots Version of N that accepts a  over the data.Qplots Version of N that accepts a - over the data without any changes to the J.RplotsScatter plots with extra numeric parameter. By default the extra parameter is the scale of the marker but this can be changed. R :: [(, (, ))] ->  (  (B v) b) () ->  ( b  ) () R :: [(,   )] ->  (  (B v) b) () ->  ( b  ) () R :: [(,   )] ->  (  (B v) b) () ->  ( b  ) () Example Sdiagrams/src_Plots_Types_Scatter_bubbleExample.svg#diagram=bubbleExample&height=350 import Plots myweights = [2, 1.3, 1.8, 0.7] mydata7 = zip myweights [(1,3), (2,5.5), (3.2, 6), (3.5, 6.1)] mydata8 = mydata7 & each._2._2 *~ 0.5 & each._1 *~ 0.5 mydata9 = [(1, V2 1.2 2.7), (3, V2 2 5.1), (0.9, V2 3.2 2.6), (2, V2 3.5 5)] bubbleAxis :: Axis B V2 Double bubbleAxis = r2Axis &~ do bubblePlot mydata7 $ key "data 7" bubblePlot mydata8 $ key "data 8" bubblePlot mydata9 $ key "data 9" %bubbleExample = renderAxis bubbleAxisSplotsSimple version of R without any changes to the  . S :: [(, (, ))] ->  ( b  ) () S :: [(,   )] ->  ( b  ) () Tplots Version of R using a  over the data.Uplots Version of R using a - over the data without any changes to the B.VplotsLensLike onto into a J made up of a scaler n, and a point,  v V ::  (  (B v) v) (B v) Wplots)Setter over the transform function for a R . Default is . V ::  (  (B v) v) (n ->  v) .Note that this is the less general version of R . E, which would give a  onto (n,  v) ->  v.Xplots%Setter over the style function for a R . Default is . X ::  (  (B v) v) (n ->  v) .Note that this is the less general version of R . E, which would give a  onto (n,  v) ->  v.Yplots1A general scatter plot allow using any data type d to determine the E and F.ZplotsUHelper to traverse over a general scatter plot where the type of d is not infered. Nplotspoints to plotplotschanges to plot optionsplots add plot to Oplotspoints to plotplots add plot to Pplotsfold over pointsplots data to foldplotschanges to plot optionsplots add plot to Qplotsfold over pointsplots data to foldplotsadd plot to axisRplotsfold over points with a sizeplotschanges to the optionsplots add plot to Splotsfold over points with a sizeplots add plot to Tplotsfold over the dataplotsdataplotschanges to the optionsplots add plot to Uplotsfold over the dataplotsdataplotschanges to the optionsplots add plot to Yplotsdataplotsextract point from dataplotsoptions for plotplots add plot to BCDEFGHIJKLMNOPQRSTUVWXYZKJCDEFGHINOPQMRSTUBVWXYZL(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone =>?@ACHSVX iplotsAdd a  as a   to an .jplotsAdd a  as a   to an ( without changes to the plot options.kplotsAdd a  as a   to an .lplotsAdd a  as a   to an ( without changes to the plot options.mplotsAdd a  plot from a list of points.nplotsAdd a  plot from a list of points.oplots Add a smooth " plot from a list of points using {. smoothLinePlot :: (BaseSpace c ~ v, F.Foldable f, Typeable v, HasLinearMap v, PointLike v Double p, R1 v, Fractional (v Double), -- needs fixing in diagrams-lib MonadState (Axis c) m) => f p -- ^ points to turn into trail -> State (Plot (Path v Double)) () -- ^ changes to plot options -> m () -- ^ add plot to the T smoothLinePlot = addPlotable . cubicSpline False . toListOf (folded . unpointLike) Add a smooth " plot from a list of points using I without changes to the plot options. smoothLinePlot' :: (BaseSpace c ~ v, F.Foldable f, PointLike v Double p, Typeable v, R1 v, Fractional (v Double), -- needs fixing in diagrams-lib MonadState (Axis c) m) => f p -- ^ points to turn into trail -> m () -- ^ add plot to the 4 smoothLinePlot' xs = smoothLinePlot xs (return ())<Construct a localed trail from a list of foldable of points.pplots2Construct a localed trail from a fold over points.qplots2Construct a localed trail from a fold over points.rplots2Construct a localed trail from a fold over points.iplots trail to plotplotschanges to plot optionsplotsadd plot to the jplots trail to plotplotsadd plot to the kplots path to plotplotschanges to plot optionsplotsadd plot to the lplots path to plotplotsadd plot to the mplotspoints to turn into trailplotschanges to plot optionsplotsadd plot to the nplotspoints to turn into trailplotsadd plot to the  ijklmnopqr ijklmnopqr(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone"#2=>?@ACHSVXtplots-Options for building the histogram from data.uplotsHThe number of bins (bars) to use for the histogram. Must be positive. is 10.vplotsdThe range of data to consider when building the histogram. Any data outside the range is ignored. is .wplotsGShould the resulting histogram be normalised so the total area is 1. is False.xplots`Options for binning histogram data. For now only very basic histograms building is supported.yplotsIThe way to normalise the data from a histogram. The default method is }.zplots.Simple histogram type supporting uniform bins.plotsDConstruct a rectangle of size $v$ with the bottom left at point $p$.{plots;Plot an already computed histogram with equally sized bins.|plots Construct a z from raw histogram data.}plotsEThe height of each bar is the number of observations. This is the  method.Example Kdiagrams/src_Plots_Types_Histogram_countDia.svg#diagram=countDia&height=350~plots1The sum of the heights of the bars is equal to 1.Example Wdiagrams/src_Plots_Types_Histogram_probabilityDia.svg#diagram=probabilityDia&height=350plotsThe 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=350plotsThe 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=350plotsThe 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=350plotsCumulative 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=350plots4Create a histogram by binning the data using the x.plotsAdd a z 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 histogramAxisplotsMake a z% without changes to the plot options.plotsAdd a z using a fold over the data.plotsSame as ! without any changes to the plot.{plotsstart of first binplotswidth of each binplotsheights of the bins|plotsstart of first binplotswidth of each binplotsheights of the binsplots"Number of bins (must be positive).plotsSample data (cannot be empty).plotsdataplotschanges to plot optionsplotsadd plot to axisplotsdataplotsadd plot to axisplotsfold over the dataplots data to foldplotschange to the plotplotsadd plot to the stuvwxyz{|}~z{xstuvwy}~|(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone"#%2=>?@ACHVgplots8Class of things that let you change the heatmap options.plotsLens onto the heatmap options.plots9Whether there should be grid lines draw for the heat map. Default is  .plotsLThe style applied to the grid lines for the heat map, if they're visible. Default is .plots3The size of each individual square in the heat map. Default is  1 1.plots,The size of the full extent of the heat map.%Default is extent of the heat matrix.plots=The starting point at the bottom left corner of the heat map. Default is plots!The center point of the heat map.plotsLimits (a,b) used on the data such that a is the start of the p and b is the end of the p . Default is (0,1).plots)Funtion used to render the heat map. See  and . Default is .plots&A mapping from points in a 2D axis do  s. These -s are converted to colours using the axis p.plots 2D Array of s.plotsThe size of heat matrix.plots>Construct a heat matrix from a size and a generating function. plotsMCompute the minimum and maximum of a vector in one pass. This ignores any Infinity or NaN= values (since these make no sense for colour bar ranges).plots5Construct a heat matrix from a foldable of foldables.  :: [[]] ->   :: [! ] ->  plots'Indexed traversal over the values of a .plotsRender 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 viridisplotsRender 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 viridis#plotsQScale an image so each pixel takes (n*n) pixels. This can be useful for using 3 on small heat matrices to give a sharper image.plotsCreate an image of  PixelsRGB8 using the heat matrix.plots7Render 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 viridisplots Construct a  using the given .plotsAdd 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 heatMapAxisplotsAdd 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'plotsAdd 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 heatMapIndexedAxisplotsAdd 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'plotschanges to plot optionsplots add plot to %plotschanges to plot optionsplots add plot to plots add plot to plotsextent of arrayplotsheat from indexplotschanges to plot optionsplots add plot to plotsextent of arrayplotsheat from indexplots add plot to (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone"#%2=>?@AHPV!plotsThe  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 of) - Together in grouped (the default) - On on top of another -  with the same height+ - each group of bars follows the last Modify the  and  of groups of bars with ..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 .&plotsoptions for building bar plots'plots8the data along with an adjustment to the plot properties(plots-labels to be placed at the bottom of each bar)plots function used to build bar plotsplotsXA bar plot for a single set of bars. Multi-bar plots are achieved by having multiple os. Each bar plot corresponds to a single legend entry. To get multiple bar entries/colours, use multiple BarPlotsplots'Class of things that have a modifiable .plotsLens onto the plotsXThe width bar for single / stacked bars or the width of a group for grouped bar plot. Default is 0.8plots.The spacing between each bar or group of bars. Default is 1plots6The distance from the axis to centre of the first bar. Default is 1plotsTThe way an individual bar plot or a group of bars plots are laid out on the axis.*plots*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.plots)Create equidistant bars using the values.plotsACreate equidistant bars with lower and upper bounds for each bar.plotsNCreate uniform bars from groups of data, placing one group after the other.plotspCreate 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.plots Similar to mkMultiStacked but stack has the same height.plotseMake 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.plotsA add  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 barAxisplotsSimple version of ! 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'plotsA add  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 namedBarAxisplotsSimple version of ! 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'plotsSame as . but with lower and upper bounds for the bars.plotsCBars 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=400plotsCBars that are grouped together such that each group is a single M. The parameter is the multiplier for the width of individual bars, where  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=400plots"Bars stacked on top of each other.Example Ydiagrams/src_Plots_Types_Bar_stackedBarsExample.svg#diagram=stackedBarsExample&height=400plotsIBars stacked on top of each other where every bar is the given height.Example cdiagrams/src_Plots_Types_Bar_stackedEqualBarsExample.svg#diagram=stackedEqualBarsExample&height=400plotsNormal bars& where each data set follows the last.Example Ydiagrams/src_Plots_Types_Bar_runningBarsExample.svg#diagram=runningBarsExample&height=400plots/Construct multiple bars, grouped together. See ; 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 multiBarAxis+plots4Place labels under the centre of each bar using the  by changing that axisTickLabels%, using the provided string in order.plotsUGiven 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 barsplots=Labels to use for each bar (or group of bars) along the axis. plotsvalue each bar reachesplotsvaluesplots.width factor of individual bars (1 = touching)plots bar heightsplotschanges to the barsplotschanges to the plots bar heightsplotschanges to the plotsbar heights with nameplotschanges to the barsplotschanges to the plotsbar heights with nameplotsadd plot to the plots bar limitsplotschanges to the barsplotsdata for multi plotplots&extract bar heights from each data setplots!state to make changes to the plotplotschanges to the plots Modifier the  and - for the bars associated with the data from a.plots(Changes to each data set when executing .(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone%2=>?@AHSVX`8,plots!The position of axis labels for aplotsRenderable axes.plotsMRender an axis to a diagram. The size of the diagram is determined by the  .plots- specialised to a 2D Axis.plotsaBuild 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 X can uses internally but might be useful for debugging or generating your own legend..plots7An lower and upper bound for the bounding radius using n] envelope calculations. The more calculations used, the smaller the range of the bound.plotsThe A class provides a default way to render an axis for each space.(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portableNone7"#$%&')(*+,-./01234EGFHIJKLMNOPQSRTUVWXYZ[\]^_`abcpqrstuvwxyz{|}~      !"#$%89:;<=>?@ABCLPMNOQRSTUopqrstuvwxyz{|}~      !"#$BCDEFGHIJKLMNOPQRSTUVWXYZijklmnopqrstuvwxyz{|}~/&'(&')*+,-./0123456789:;<=>?@@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                                   ! " # $ % &"'()*+,-./012345#6$789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~%    &  !"#&$%&'&()*+,-.&/0!12345&67839,-:;!<=!<>!<?@ A!<B!CDEF!GH3IJ&KLM&NOP&NQ&/R&STUVWXYZ[\]^_`abcdefgh!ijklplots-0.1.1.1-inplaceDiagrams.Coordinates.PolarDiagrams.Coordinates.IsomorphicPlots.Axis.Scale Plots.Style Plots.Util Plots.Types Plots.LegendPlots.Axis.TitlePlots.Axis.LinePlots.Axis.LabelsPlots.Axis.GridPlots.Axis.TicksPlots.Axis.ColourBar Plots.AxisPlots.Types.ScatterPlots.Types.LinePlots.Types.HistogramPlots.Types.HeatMapPlots.Types.BarPlots.Axis.RenderxMinyMinxMaxyMaxrMax Plots.NameHeatMap ColourBarPlotsBar Plots.StylesRibbonScatterAxisxLabelyLabelbarPlotgeometry-0.1.0.0-inplaceGeometry.TwoD.TypesHasR_rP3LikeP2Like PointLike pointLike unpointLikeV3LikeV2Like VectorLike vectorLike unvectorLike EuclideanHasIndexedBasis$fVectorLikeV3n(,,)$fVectorLikeV3nV3$fVectorLikeV2nComplex$fVectorLikeV2n(,)$fVectorLikeV2nV2$fPointLikeV3n(,,)$fPointLikeV2nComplex$fPointLikeV2n(,)$fPointLikeV2nV2$fPointLikevnPointPolar $fMonadPolar$fFunctorPolar$fMonadFixPolar$fApplicativePolar$fTraversablePolar$fGeneric1Polar$fMonadZipPolar$fFoldablePolarHasYy_xy_HasXx_Circle_azimuth_polarRadial_radialmkPolarpolarunpolarpolarIsopolarV2 interpPolarereθetheta$fPointLikeV2nPolar $fHasRPolar$fRepresentablePolar$fDistributivePolar$fWrappedPolar$fRewrappedPolart $fRadialPolar $fCirclePolar $fHasXPolar$fHasXV3$fHasXV2 $fHasXPoint $fHasYPolar$fHasYV3$fHasYV2 $fHasYPointLogScale LinearAxisLogAxisHasAxisScaling axisScalingscaleAspectRatio scaleModelogScale axisExtendboundMinboundMax renderSize ExtendingAbsoluteExtendRelativeExtend AxisScalingUniformScaleStrategyAutoUniformScaleUnitOnlyChangeVerticalLimitsChangeHorizontalLimits ScaleMode AutoScaleNoScaleStretch UniformScalenoExtendcalculateBoundscalculateScaling logNumberlogPoint$fDefaultLogScale$fDefaultAxisScaling$fHasAxisScalingfAxisScaling$fShowUniformScaleStrategy$fReadUniformScaleStrategy$fShowScaleMode$fReadScaleMode$fShowExtending$fOrdExtending $fEqExtending$fShowLogScale $fEqLogScale ColourMap HasNanColours nanColours nanColour infColour negInfColour NanColours HasAxisStyle axisStyle axisColourMap axisStyles AxisStyle HasPlotStyle plotStyle plotColour plotColor lineStylelineStyleFunction markerStylemarkerStyleFunction areaStyleareaStyleFunction textStyletextStyleFunction plotMarker plotStylesplotStyleFunctions PlotStyleapplyLineStyleapplyMarkerStyleapplyAreaStyleapplyTextStyle fadedColoursfadedColours3D vividColours blackAndWhitecolours1colours2 lineMarkersasteriskdiamond crossShapeplusstar'ixColour ixColourR cmTraverse colourList colourMaptoStopsgreysmagmainfernoplasmaviridis$fTransformablePlotStyle$fHasPlotStylefPlotStyle$fDefaultNanColours$fHasNanColoursNanColours $fAtColourMap$fIxedColourMap$$fEachColourMapColourMapColourColour$fTransformableColourMap$fHasNanColoursColourMap$fHasPlotStylefAxisStyle$fHasAxisStyleAxisStyle$fShowNanColours$fShowColourMap&=&~~ enumFromToNwheneverpathFromVerticesminMaxOfAxisSpec _specBounds _specTrans _specScale_specColourMapHasPlotOptions plotOptionsplotNameclipPlot 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$fHasOrientationOrientation$fHasPlacementPlacement$fDefaultLegendPic$fDefaultPlotOptions$fQualifiablePlotOptions$fHasOriginPlotOptions$fTransformablePlotOptions$fHasPlotOptionsfPlotOptions$fShowOrientation$fEqOrientation$fOrdOrientation$fShowPlacement $fEqPlacement StyledPlot DynamicPlotPlotPlotMods HasVisibilityvisiblehiddenPlotablerenderPlotable defLegendPic specBounds specColourMap specScale specTransscaleNum specPointhidedisplaymkPlotrawPlotplotMods _DynamicPlot dynamicPlotdynamicPlotMods styledPlot styleDynamicrenderStyledPlotsingleStyledPlotLegendstyledPlotLegends$fPlotablePath$fPlotableQDiagram$fHasVisibilityPlotOptions$fDefaultPlotMods$fHasPlotStylefPlotMods$fHasPlotOptionsfPlotMods$fHasVisibilityPlotMods$fHasOrientationPlot$fHasPlotStylefPlot$fHasPlotOptionsfPlot$fHasVisibilityPlot$fHasPlotStylefDynamicPlot$fHasPlotOptionsfDynamicPlot$fHasVisibilityDynamicPlot$fHasPlotStylefStyledPlot$fEnvelopedStyledPlot$fHasPlotOptionsfStyledPlot$fHasVisibilityStyledPlot HasLegendlegendlegendPlacement legendGap legendStyle legendSpacinglegendTextWidthlegendTextFunctionlegendTextStylelegendOrientationLegend drawLegend$fApplyStyleLegend$fHasVisibilityLegend$fDefaultLegend$fHasOrientationLegend$fHasStyleLegend$fHasPlacementLegend$fHasGapLegend$fHasLegendLegendHasTitletitle titleText titleStyletitlePlacementtitleTextFunctiontitleAlignmenttitleGapTitle drawTitle $fHasGapTitle$fHasVisibilityTitle$fDefaultTitle$fDefaultTitle0$fHasTitleTitle$fHasPlacementTitle HasAxisLineaxisLine axisLineType axisLineStyleAxisLine AxisLineType BoxAxisLine LeftAxisLineMiddleAxisLine RightAxisLine NoAxisLine$fDefaultAxisLineType$fDefaultAxisLine$fHasVisibilityAxisLine$fApplyStyleAxisLine$fHasStyleAxisLine$fHasAxisLinefAxisLine$fShowAxisLineType$fEqAxisLineType HasTickLabels tickLabeltickLabelTextFunctiontickLabelFunctiontickLabelStyle tickLabelGap TickLabels HasAxisLabel axisLabel axisLabelTextaxisLabelTextFunction axisLabelGapaxisLabelStyleaxisLabelPositionaxisLabelPlacement AxisLabelAxisLabelPlacementInsideAxisLabelOutsideAxisLabelAxisLabelPositionMiddleAxisLabelLowerAxisLabelUpperAxisLabel TextFunctiontickLabelPositions atMajorTicks$fDefaultAxisLabel$fDefaultAxisLabel0$fHasVisibilityAxisLabel$fApplyStyleAxisLabel$fHasGapAxisLabel$fHasStyleAxisLabel$fHasAxisLabelfAxisLabel$fHasVisibilityTickLabels$fDefaultTickLabels$fDefaultTickLabels0$fHasGapTickLabels$fHasTickLabelsfTickLabels HasGridLines gridLines GridLinesHasMinorGridLinesminorGridLinesminorGridLinesFunctionminorGridLinesStyleMinorGridLinesHasMajorGridLinesmajorGridLinesmajorGridLinesFunctionmajorGridLinesStyleMajorGridLinesGridLineFunctiononTicksGridLineFunctionemptyGridLineFunctiongridLinesVisible hideGridLines showGridLinesgridLinesStyle$fApplyStyleMajorGridLines$fHasVisibilityMajorGridLines$fDefaultMajorGridLines$fHasStyleMajorGridLines"$fHasMajorGridLinesfMajorGridLines$fApplyStyleMinorGridLines$fHasVisibilityMinorGridLines$fDefaultMinorGridLines$fHasStyleMinorGridLines"$fHasMinorGridLinesfMinorGridLines$fApplyStyleGridLines$fHasMinorGridLinesfGridLines$fHasMajorGridLinesfGridLines$fDefaultGridLines$fHasGridLinesfGridLinesHasTicks bothTicksTicks HasMinorTicks minorTicksminorTicksFunctionminorTicksAlignmentminorTicksLengthminorTicksStyle MinorTicks HasMajorTicks majorTicksmajorTicksFunctionmajorTicksAlignmentmajorTicksLengthmajorTicksStyle MajorTicksTicksAlignmentTickSpecAutoTick autoTicks centreTicks centerTicks insideTicks outsideTicks ticksAlign ticksStyle ticksVisible hideTicksmajorTickPositionsminorTickPositionslinearMajorTicks logMajorTicksminorTicksHelpermajorTicksHelper$fApplyStyleMajorTicks$fHasVisibilityMajorTicks$fDefaultMajorTicks$fHasStyleMajorTicks$fHasMajorTicksfMajorTicks$fApplyStyleMinorTicks$fHasVisibilityMinorTicks$fDefaultMinorTicks$fHasStyleMinorTicks$fHasMinorTicksfMinorTicks$fApplyStyleTicks$fDefaultTicks$fHasMinorTicksfTicks$fHasMajorTicksfTicks$fHasTicksfTicks$fShowTicksAlignment$fEqTicksAlignment HasColourBar colourBar colourBarDrawcolourBarWidthcolourBarLengthFunction colourBarGapcolourBarStyle defColourBar addColourBarrenderColourBargradientColourBar pathColourBar$fHasVisibilityColourBar$fHasTickLabelsfColourBar$fHasMajorGridLinesfColourBar$fHasMinorTicksfColourBar$fHasMajorTicksfColourBar$fApplyStyleColourBar$fHasOrientationColourBar$fHasPlacementColourBar$fHasStyleColourBar$fHasGapColourBar$fHasColourBarColourBar BaseSpace SingleAxisaxes axisPlots currentPlots finalPlots plotModifieraxisSizecolourBarRangeaddPlot addPlotable addPlotable'r2Axisr3AxisxAxisyAxiszAxiszLabelzMinzMaxrAxisrLabel thetaAxis thetaLabel polarAxis$fHasVisibilitySingleAxis$fHasAxisScalingfSingleAxis$fHasMinorGridLinesfSingleAxis$fHasMajorGridLinesfSingleAxis$fHasGridLinesfSingleAxis$fHasAxisLinefSingleAxis$fHasTickLabelsfSingleAxis$fHasAxisLabelfSingleAxis$fHasMinorTicksfSingleAxis$fHasMajorTicksfSingleAxis$fHasTicksfSingleAxis$fDefaultSingleAxis$fDefaultSingleAxis0$fHasColourBarAxis$fHasAxisStyleAxis$fHasTitleAxis$fHasLegendAxis$fHasPlotStylefAxis$fHasPlotOptionsfAxis$fHasAxisScalingfAxis$fHasTickLabelsfAxis$fHasAxisLabelfAxis$fHasAxisLinefAxis$fHasMinorGridLinesfAxis$fHasMajorGridLinesfAxis$fHasGridLinesfAxis$fHasMinorTicksfAxis$fHasMajorTicksfAxis$fHasTicksfAxis BubbleOptionsHasScatterOptionsgscatterOptionsscatterTransform scatterStylescatterPositionHasConnectingLineconnectingLineScatterOptions ScatterPlotmkScatterOptionsscatterOptions scatterPlot scatterPlot' scatterPlotOfscatterPlotOf' bubblePlot bubblePlot' bubblePlotOf bubblePlotOf' bubbleOptionsbubbleTransform bubbleStyle gscatterPlotgscatterOptionsFor$fPlotableScatterPlot$fPlotableScatterPlot0$fEnvelopedScatterPlot$fHasConnectingLinefAxis$fHasConnectingLinefStyledPlot$fHasConnectingLinefDynamicPlot$fHasConnectingLinefPlot$fHasConnectingLinefScatterPlot"$fHasConnectingLinefScatterOptions$fHasScatterOptionsfAxisa $fHasScatterOptionsfDynamicPlota$fHasScatterOptionsfPlota $fHasScatterOptionsfScatterPlotd$$fHasScatterOptionsfScatterOptionsd' trailPlot trailPlot'pathPlot pathPlot'linePlot linePlot'mkTrail mkTrailOfmkPathmkPathOfHasHistogramOptionshistogramOptionsnumBinsbinRangenormaliseSampleHistogramOptionsNormalisationMethod HistogramPlotcomputedHistogrammkComputedHistogramcount probability countDensitypdf cumilativecdfmkHistogramPlot histogramPlothistogramPlot'histogramPlotOfhistogramPlotOf'$fHasOrientationHistogramPlot$fPlotableHistogramPlot$fEnvelopedHistogramPlot$fDefaultNormalisationMethod $fHasOrientationHistogramOptions$fDefaultHistogramOptions$fHasHistogramOptionsPlot%$fHasHistogramOptionsHistogramOptions HasHeatMapheatMapOptionsheatMapGridVisibleheatMapGridStyle heatMapSize heatMapExtent heatMapStart heatMapCentre heatMapLimits heatMapRender HeatMatrixhmSize _hmVector hmBoundLower hmBoundUpper mkHeatMatrix mkHeatMatrix'hmPointspixelHeatRenderpixelHeatRender' heatImagepathHeatRender mkHeatMap mkHeatSurfaceheatMapheatMap'heatMapIndexedheatMapIndexed'$fPlotableHeatMap$fPlotableHeatMap0$fEnvelopedHeatMap$fEnvelopedHeatMap0$fHasHeatMapfPlot$fHasHeatMapfHeatMap MultiBarStateBarPlot HasBarLayout barLayoutbarWidth barSpacingbarStart BarLayoutmkBarsmkFloatingBars mkRunningBars mkStackedBarsmkStackedEqualBars mkGroupedBarsbarPlot' namedBarPlot namedBarPlot'floatingBarPlot groupedBars groupedBars' stackedBarsstackedEqualBars runningBars multiBarsonBars labelBars$fHasOrientationBarLayout$fDefaultBarLayout$fHasBarLayoutPlot$fHasBarLayoutBarLayout$fHasBarLayoutBarPlot$fPlotableBarPlot$fEnvelopedBarPlot$fHasOrientationBarPlot$fHasBarLayoutMultiBarState$fHasOrientationMultiBarState$fHasLabelsMultiBarState RenderAxis renderAxis r2AxisMain buildPlots$fRenderOutcometAxis$fWithOutcomeAxis$fWithOutcomeAxis0$fWithOutcomeAxis1$fRenderAxisPolar$fRenderAxisV3$fRenderAxisV2$fRenderOutcometAxis0$fRenderOutcometAxis1$fShowLabelPosition$fEqLabelPosition lens-4.17-I0iti2jZ5lg2bUNZsogKjTControl.Lens.TypeIso'$linear-1.20.8-2lKCC4Kvocj6zT74O1uzCS Linear.AffinePoint Linear.V2V2 Linear.V3V3 Linear.V1R1Geometry.AngleAngleR21data-default-class-0.1.2.0-FeIQ5tLoVZBHMSgrT9zptQData.Default.ClassDefaultbase GHC.MaybeNothingLens'ghc-prim GHC.TypesDoubleMaybeJust asSizeSpec#colour-2.3.4-BYzTQyKoQ9LK29pbkBo2SYData.Colour.Nameslimemagentadiagrams-2.0.0.0-inplaceDiagrams.Types.StyleStyle Geometry.PathPath shapeMarkers filledMarkersGeometry.TwoD.ShapessquareData.Colour.Internal transparenttransformers-0.5.6.2Control.Monad.Trans.State.LazyStateTGeometry.Trail fromVerticesDiagrams.Types.NamesNameGHC.BasememptyTrueGeometry.BoundingBox BoundingBox dirBetween'StringStateFalseDiagrams.TwoD.TextmkText TextAlignmentBoxAlignedText Traversal' floatShowfontSizeDiagrams.Types.MeasureoutputFloatBoolDiagrams.AttributeslwOidLensLikeGeometry.PointsP2FoldGeometry.TransformscaleSetter'TransformationTrailGeometry.CubicSpline cubicSplinerectBLrangeoriginminMax&vector-0.12.0.2-AoZ9EwUsgIW1yrOc105QXHData.Vector.Unboxed.BaseVector(JuicyPixels-3.3.3-AZjJ9LBCSfC5C1PMTW6qQXCodec.Picture.Types ImageRGB8 scaleImageInt heatSurface mbsLayoutmbsMods mbsLabels mbsBarFunrectBbarLayoutAxisLabels LabelPositionDiagrams.Backend.CmdLinemainWithboundingRadiusR