h*4*       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                     0.1.1.4(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portable Safe-Inferred(/=Qplots+Things that are isomorphic to points in R2.plots Provides an  between a and  v n. 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 n. 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 plotsUmbrella 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-portable Safe-Inferred79:;<S "plotsCoordinate 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  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.,-./01*+')(%&"#$234,-./01*+')(%&"#$234(C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portable Safe-Inferred %&9#Eplots/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.JplotsThe ratio relative to other axis. If no ratios are set, the ratio is not enforced. If at least one is set,  ratios are 1.KplotsThe mode to determine how to scale the bounds in a direction. Choose between [, \, ] or ^. is [.LplotsWhether the axis uses G or F. is F.MplotsHow much to extend the bounds over infered bounds. This is ignored if a O or N is set.NplotsThe maximum bound the axis. There are helper functions for setting a minimum bound for a specific axis.  ::  (Axis b  ) ( )  ::  (Axis b  ) ( )  Default is .OplotsThe 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.TplotsData 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 plotsScale transformation using the respective scale coefficients in the vector.plots*Apply a function if the predicate is true.bplotsLog the number for G, do nothing for F.cplotsTransform a point according to the axis scale. Does nothing for linear scales.dplotsDeform an object 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 plots TZ[\]^UVWXYQSR_HIJKLMNOPEGFbcd`a TZ[\]^UVWXYQSR_HIJKLMNOPEGFbcd`a Safe-Inferred7#rvutswxyrvutsyxw(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portable Safe-Inferred%&(7=3~plotsA map from a number (usually between 0 and 1) to a colour. Colour maps are part of the ", which is used for plots like .plotsColours to use when displaying NaN, Infinity and  -Infinity.plotsColour to use when displaying NaN.Default is 'white.plotsColour to use when displaying Infinity. Default is .plotsColour to use when displaying  -Infinity. Default is .plots!Colours to use when representing NaN, Infinity and  -Infinity.plotsClass of things that have an .plotsLens onto the .plotsThe ~ is used to draw the  and render plots like .plotsTraversal over the s in an ,. There are always an infinite number of s in an .plotsThe  determines the s 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  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 .plotsThis 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.plotsThis 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.plotsThis 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 : stylishAxis = r2Axis &~ do axisStyle .= vividColours linePlot [(1,2) (3,4)] $ key "line 1" linePlot [(1,1) (4,2)] $ key "line 2" change 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  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 . applyLineStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t plots Apply the  from a . applyMarkerStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t plotsApply the 'areaStyle from a . applyLineStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t plots Apply the  from a . applyTextStyle :: (InSpace v n t, HasStyle t) => PlotStyle b v n -> t -> t plots Theme using  funColours" with faded fills and thick lines. diagrams/src_Plots_Style_fadedColourPic.svg#diagram=fadedColourPic&width=600plots Theme using  funColours with no lines on 'areaStyle. diagrams/src_Plots_Style_vividColourPic.svg#diagram=vividColourPic&width=600plotsTheme without any colours, useful for black and white documents. diagrams/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 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.plotsIndexed traversal over the colours indexed and ordered by their position in the map.plotsReturn 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/. diagrams/src_Plots_Style_infernoBar.svg#diagram=infernoBar&width=600plots!The plasma colour map taken from  https://bids.github.io/colormap/. diagrams/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. diagrams/src_Plots_Style_viridisBar.svg#diagram=viridisBar&width=600plots == 6~6~ Safe-Inferred @plots Similar to 9 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-portable Safe-Inferred)*7V7plotsInformation from the $ necessary to render a .plotsClass of things that have .plotsLens onto the .plotsThe  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 .plotsThe 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.plotsType 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 Position 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 n) b) ()  ::  ->  ( b v n) ()  ::  ->  ( b v n) () 3If you only care about the name of the legend, use .plotsAdd 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 .plotsMove origin by applying to  plotTransform.plotsA  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 . 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= [(1.5, "critial mass")] .If you want to change or add normal ticks see majorTicksFunction.plotsNumbers are shown as s to reduce the chance of numbers like 1.30000000008. (This is not an ideal solution.)plotsMake a TickLabelFunction by specifying how to draw a single label from a position on the axis. (C) 2015 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portable Safe-Inferred 7yplots?Type holding information about both major and minor grid lines.plotsThe 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) plotsThe 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.plotsThe 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) plotsThe 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.plotsPlace 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 plotsTraversal 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-portable Safe-Inferred7 plotsClass of things with both  and .plotsBoth  and  together.plots#Class of things that have a single .plotsLens onto the  of something.plotsThe 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.plotsSet 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 Axis b c n  ::  SingleAxis b v n ->  SingleAxis b v n  ::  v n ->  v n  ::  v n ->  v n plotsSetter 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.plotsSetter 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.plotsChoose 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-portable Safe-Inferred%&( 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  from  Plots.Style Default is .plotsThe width (orthogonal to the colour bar direction) of the colour bar. is 20.plotsSet the length of the colour bar given the length of the axis the colour bar is aligned to. is .plotsGap between the axis and the colour bar (if rendered with an axis). is 20.plots+Style used for the outline of a colour bar.plotsOptions for drawing a colour bar. Note that for an axis, the ~ is stored in the . These options are for other aspects of the bar, not the colours used.plotsThe default colour bar.plotsAdd a colour bar to an object, using the bounding box for the object.plotsRender 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. diagrams/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. diagrams/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-portable Safe-Inferred 7plotsAxis is the data type that holds all the necessary information to render a plot. Common s used for the axis (see haddock's instances for a more comprehensive list): - customise the  - customise the  - 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  - customise the  - customise the  - customise the  - customise the  - customise the I - customise the TPlots 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.plotsThis 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.plotsLens 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)) 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 connectingLine (both currently in the axis and ones added later), you can add  . connectingLine .=  plotsLens onto the modifier set by . This gets applied to all plots in the axis, just before they are rendered.plots$The size used for the rendered axis.plotsThe 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.plotsLens onto the x-axis of an .plots(The label for the x-axis. Shorthand for  . .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  . .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  . .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  . .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 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.plots Lens onto the radial axis of an .plots-The label for the radial axis. Shorthand for  . .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-portable Safe-Inferred%&)*7plotsA bubble plot is a scatter plot using point together with a scalar.plotsLens onto the  for a general scatter plot.plots;Apply a transform to the markers using the associated data.plots7Apply a style to the markers using the associated data.plots9Change the position of the markers depending on the data.plotsClass of things that have a  for a  's connecting line.plots onto whether the scatter plot should have a connecting line between points. If the line is present, it uses the  from the .plotsA general data type for scatter plots. Allows storing different types of data as well as allowing transforms depending on the data.plotsA general data type for scatter plots. Allows storing different types of data as well as allowing transforms depending on the data.plotsLow level construction of .plots#Lens onto a scatter plot of points.plotsAdd a  to the  AxisState from a data set.  :: [(, )] ->  ( (   (  )) b) () ->  ( b  ) ()  :: [  ] ->  ( (   (  )) b) () ->  ( b  ) ()  :: [  ] ->  ( (   (  )) b) () ->  ( b  ) () Example diagrams/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 scatterAxisplots Version of  without any changes to the .  :: [(, )] ->  ( b  ) ()  :: [  ] ->  ( b  ) ()  :: [  ] ->  ( b  ) () Example diagrams/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'plots Version of  that accepts a  over the data.plots Version of  that accepts a - over the data without any changes to the .plotsScatter plots with extra numeric parameter. By default the extra parameter is the scale of the marker but this can be changed.  :: [(, (, ))] ->  ( ( v n) b) () ->  ( b  ) ()  :: [(,   )] ->  ( ( v n) b) () ->  ( b  ) ()  :: [(,   )] ->  ( ( v n) b) () ->  ( b  ) () Example diagrams/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 bubbleAxisplotsSimple version of  without any changes to the .  :: [(, (, ))] ->  ( b  ) ()  :: [(,   )] ->  ( b  ) () plots Version of  using a  over the data.plots Version of  using a - over the data without any changes to the .plotsLensLike onto into a  made up of a scaler n, and a point,  v n  ::  ( ( v n) v) ( v n) plots)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.plots%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.plots1A general scatter plot allow using any data type d to determine the  and .plotsHelper to traverse over a general scatter plot where the type of d is not infered. plotspoints to plotplotschanges to plot optionsplots add plot to plotspoints to plotplots add plot to plotsfold over pointsplots data to foldplotschanges to plot optionsplots add plot to plotsfold over pointsplots data to foldplotsadd plot to axisplotsfold over points with a sizeplotschanges to the optionsplots add plot to plotsfold over points with a sizeplots add plot to plotsfold over the dataplotsdataplotschanges to the optionsplots add plot to plotsfold over the dataplotsdataplotschanges to the optionsplots add plot to plotsdataplotsextract point from dataplotsoptions for plotplots add plot to (C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portable Safe-Inferred%&(67mplotsThe state used to draw a part chart made of multiple pie wedges.plots#Description on how to draw a wedge.plots,The outside radius of the wedge. Default is 1.plots/The inside radius of the wedge. Default is $0$.plots(The offset of the wedge from the center.plots*The width of the wedge, starting from the .plots%The inititial direction of the wedge.plotsContains information to draw a single wedge of a pie. It is not intended to be drawn directly. Instead use .plots;Create a pie wedge with unit radius, starting at direction d with width theta.plots5Modify the state for each wedge given the data entry.!Some common lenses to use on the : - change the colour of the bars - modify the style of the bars, - add a legend entry for that group of bars* - the offset of the wedge from the centerplotsAdd a legend entry for each item given a function that extracts the item's name.plotsMake a pie plot from a list of data by making a series of wedge plots.Example diagrams/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 piePlotAxisplots8Make a pie plot from list of values without any changes.Example diagrams/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'plots Add a single PiePlot to the  AxisState from a data set.Example diagrams/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 wedgePlotAxisplotsstarting directionplotswidth of wedgeplotsresulting wedgeplotsdata for each wedgeplotsextract weight of each wedgeplotsweight of each wedge(C) 2016 Christopher Chalmers BSD-style (see the file LICENSE)Christopher Chalmers experimental non-portable Safe-Inferred ^ plotsAdd a  as a  to an .plotsAdd a  as a  to an ( without changes to the plot options.plotsAdd a  as a  to an .plotsAdd a  as a  to an ( without changes to the plot options.plotsAdd a  plot from a list of points.plotsAdd a  plot from a list of points.plots Add a smooth " plot from a list of points using .plots Add a smooth " plot from a list of points using ( without changes to the plot options.plotsConstruct a heat matrix from a size and a generating function.plotsCompute 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 diagrams/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 diagrams/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 viridisplotsScale 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 diagrams/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 Heatmap using the given .plotsAdd a  plot using the extent of the heatmap and a generating function.  :: [[]] ->  ( ( b n)) () ->  ( b  n) () Example diagrams/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  plot using the extent of the heatmap and a generating function.  :: [[]] ->  ( b  n) () Example diagrams/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  plot using the extent of the heatmap and a generating function.  ::   -> (  ->  ) ->  ( ( b n)) () ->  ( b  n) ()  :: (, ) -> ((, ) -> ) ->  ( ( b n)) () ->  ( b  n) () Example diagrams/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  plot using the extent of the heatmap and a generating function without changes to the heap map options.  ::   -> (  ->  ) ->  ( b  n) ()  :: (, ) -> ((, ) -> ) ->  ( b  n) () Example diagrams/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 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-portable Safe-Inferred%&(7!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 plotsplots8the data along with an adjustment to the plot propertiesplots-labels to be placed at the bottom of each barplots function used to build bar plotsplotsA bar plot for a single set of bars. Multi-bar plots are achieved by having multiple s. 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 plotsThe 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 1plotsThe 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 fromCorners (V2 barPos (fst barBounds))) (V2 (barPos + barWidth) (snd barBounds)) for  bars, flipped for . This is a low level representation of a bar and is not intended to be used directly.Construct a rectangle of size v with the bottom centre at point p.plots)Create equidistant bars using the values.plotsCreate equidistant bars with lower and upper bounds for each bar.plotsCreate uniform bars from groups of data, placing one group after the other.plotsCreate 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.plotsMake bars that are grouped together. Each group of bars is treated as a single bar when using the  BarPlotsOpts. There is an addition parameter to adjust the width of each individual bar.plotsA add  to an .Example diagrams/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 diagrams/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 diagrams/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 diagrams/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.plotsBars 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 diagrams/src_Plots_Types_Bar_groupedBarsExample.svg#diagram=groupedBarsExample&height=400plotsBars that are grouped together such that each group is a single . The parameter is the multiplier for the width of individual bars, where  1 = groupedBars 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 diagrams/src_Plots_Types_Bar_stackedBarsExample.svg#diagram=stackedBarsExample&height=400plotsBars stacked on top of each other where every bar is the given height.Example diagrams/src_Plots_Types_Bar_stackedEqualBarsExample.svg#diagram=stackedEqualBarsExample&height=400plotsNormal bars& where each data set follows the last.Example diagrams/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 diagrams/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)] sortedData = [ ("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 multiBarAxisplots4Place labels under the centre of each bar using the  by changing that axisTickLabels%, using the provided string in order.plotsGiven 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-portable Safe-Inferred(7plots!The position of axis labels for aplotsRenderable axes.plotsRender an axis to a diagram. The size of the diagram is determined by the .plots specialised to a 2D Axis.plotsBuild 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  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  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-portable Safe-Inferred1~TZ[\]^UVWXYQSRHIJKLMNOPEGF_bcd`a*+')(%&"#$,-./01234()*()+,-./0123456789:;<=>?@ABBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                     $%&'(((((((( ((()(((plots-0.1.1.4-inplaceDiagrams.Coordinates.PolarDiagrams.Coordinates.IsomorphicPlots.Axis.Scale Plots.Name 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.PiePlots.Types.LinePlots.Types.HistogramPlots.Types.HeatMapPlots.Types.BarPlots.Axis.RenderplotsxMinyMinxMaxyMaxrMaxHeatMap ColourBarPlotsBar Plots.StylesRibbonScatterAxisxLabelyLabelbarPlotdiagrams-lib-1.4.6-6df1f3f80cd4110bd0e192c9074c04689c610ce2e109c64f63086403d97c4615Diagrams.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$fGeneric1TYPEPolar$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 logDeform$fDefaultLogScale$fDefaultAxisScaling$fHasAxisScalingfAxisScaling$fShowLogScale $fEqLogScale$fShowExtending$fOrdExtending $fEqExtending$fFunctorExtending$fShowScaleMode$fReadScaleMode$fShowUniformScaleStrategy$fReadUniformScaleStrategyPlotName _plotName _namedSize2D_namedT2 namedSize2DnamedT2plotName$fIsNamePlotName $fOrdPlotName $fEqPlotName$fShowPlotName ColourMap HasNanColours nanColours nanColour infColour negInfColour NanColours HasAxisStyle axisStyle axisColourMap axisStyles AxisStyle HasPlotStyle plotStyle plotColour plotColor lineStylelineStyleFunction markerStylemarkerStyleFunction areaStyleareaStyleFunction textStyletextStyleFunction plotMarker plotStylesplotStyleFunctions PlotStyleapplyLineStyleapplyMarkerStyleapplyAreaStyleapplyTextStyle fadedColours vividColours blackAndWhitecolours1colours2 lineMarkersasteriskdiamond crossShapeplusstar'ixColour ixColourR cmTraverse colourList colourMaptoStopsgreysmagmainfernoplasmaviridis$fTransformablePlotStyle$fHasPlotStylefPlotStyleb$fDefaultNanColours$fHasNanColoursNanColours $fAtColourMap$fIxedColourMap$$fEachColourMapColourMapColourColour$fTransformableColourMap$fHasNanColoursColourMap$fHasPlotStylefAxisStyleb$fHasAxisStyleAxisStyleb$fShowColourMap$fShowNanColours&=&~~ enumFromToNwheneverpathFromVerticesminMaxOfAxisSpec _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$fHasOrientationOrientation$fHasPlacementPlacement$fDefaultLegendPic$fDefaultPlotOptions$fQualifiablePlotOptions$fHasOriginPlotOptions$fTransformablePlotOptions$fHasPlotOptionsfPlotOptionsb$fShowPlacement$fReadPlacement $fEqPlacement$fOrdPlacement$fShowOrientation$fEqOrientation$fOrdOrientation StyledPlot DynamicPlotPlotPlotMods HasVisibilityvisiblehiddenPlotablerenderPlotable defLegendPic specBounds specColourMap specScale specTransscaleNum specPointhidedisplaymkPlotrawPlotplotMods _DynamicPlot dynamicPlotdynamicPlotMods styledPlot styleDynamicrenderStyledPlotsingleStyledPlotLegendstyledPlotLegends$fPlotablePathb$fPlotableQDiagramb$fHasVisibilityPlotOptions$fDefaultPlotMods$fHasPlotStylefPlotModsb$fHasPlotOptionsfPlotModsb$fHasVisibilityPlotMods$fHasOrientationPlot$fHasPlotStylefPlotb$fHasPlotOptionsfPlotb$fHasVisibilityPlot$fHasPlotStylefDynamicPlotb$fHasPlotOptionsfDynamicPlotb$fHasVisibilityDynamicPlot$fHasPlotStylefStyledPlotb$fEnvelopedStyledPlot$fHasPlotOptionsfStyledPlotb$fHasVisibilityStyledPlot HasLegendlegendlegendPlacement legendGap legendStyle legendSpacinglegendTextWidthlegendTextFunctionlegendTextStylelegendOrientationLegend drawLegend$fHasVisibilityLegend$fDefaultLegend$fHasOrientationLegend$fHasStyleLegend$fHasPlacementLegend$fHasGapLegend$fHasLegendLegendbHasTitletitle titleText titleStyletitlePlacementtitleTextFunctiontitleAlignmenttitleGapTitle drawTitle $fHasGapTitle$fHasVisibilityTitle$fDefaultTitle$fHasTitleTitleb$fHasPlacementTitle HasAxisLineaxisLine axisLineTypeaxisLineArrowOpts axisLineStyleAxisLine AxisLineType BoxAxisLine LeftAxisLineMiddleAxisLine RightAxisLine NoAxisLine$fDefaultAxisLineType$fDefaultAxisLine$fHasVisibilityAxisLine$fHasAxisLinefAxisLine$fShowAxisLineType$fEqAxisLineType HasTickLabels tickLabeltickLabelTextFunctiontickLabelFunctiontickLabelStyle tickLabelGap TickLabels HasAxisLabel axisLabel axisLabelTextaxisLabelTextFunction axisLabelGapaxisLabelStyleaxisLabelPositionaxisLabelPlacement AxisLabelAxisLabelPlacementInsideAxisLabelOutsideAxisLabelAxisLabelPositionMiddleAxisLabelLowerAxisLabelUpperAxisLabel TextFunctiontickLabelPositions atMajorTicks$fDefaultAxisLabel$fHasVisibilityAxisLabel$fHasGapAxisLabel$fHasStyleAxisLabel$fHasAxisLabelfAxisLabelb$fHasVisibilityTickLabels$fDefaultTickLabels$fHasGapTickLabels$fHasTickLabelsfTickLabelsb HasGridLines gridLines GridLinesHasMinorGridLinesminorGridLinesminorGridLinesFunctionminorGridLinesStyleMinorGridLinesHasMajorGridLinesmajorGridLinesmajorGridLinesFunctionmajorGridLinesStyleMajorGridLinesGridLineFunctiononTicksGridLineFunctionemptyGridLineFunctiongridLinesVisible hideGridLines showGridLinesgridLinesStyle$fHasVisibilityMajorGridLines$fDefaultMajorGridLines$fHasStyleMajorGridLines"$fHasMajorGridLinesfMajorGridLines$fHasVisibilityMinorGridLines$fDefaultMinorGridLines$fHasStyleMinorGridLines"$fHasMinorGridLinesfMinorGridLines$fHasStyleGridLines$fHasMinorGridLinesfGridLines$fHasMajorGridLinesfGridLines$fDefaultGridLines$fHasGridLinesfGridLinesHasTicks bothTicksTicks HasMinorTicks minorTicksminorTicksFunctionminorTicksAlignmentminorTicksLengthminorTicksStyle MinorTicks HasMajorTicks majorTicksmajorTicksFunctionmajorTicksAlignmentmajorTicksLengthmajorTicksStyle MajorTicksTicksAlignmentTickSpecAutoTick autoTicks centreTicks centerTicks insideTicks outsideTicks ticksAlign ticksStyle ticksVisible hideTicksmajorTickPositionsminorTickPositionslinearMajorTicks logMajorTicksminorTicksHelpermajorTicksHelper$fHasVisibilityMajorTicks$fDefaultMajorTicks$fHasMajorTicksfMajorTicks$fHasVisibilityMinorTicks$fDefaultMinorTicks$fHasMinorTicksfMinorTicks$fHasStyleTicks$fDefaultTicks$fHasMinorTicksfTicks$fHasMajorTicksfTicks$fHasTicksfTicks$fShowTicksAlignment$fEqTicksAlignment HasColourBar colourBar colourBarDrawcolourBarWidthcolourBarLengthFunction colourBarGapcolourBarStyle defColourBar addColourBarrenderColourBargradientColourBar pathColourBar$fHasVisibilityColourBar$fHasTickLabelsfColourBarb$fHasMajorGridLinesfColourBar$fHasMinorTicksfColourBar$fHasMajorTicksfColourBar$fHasOrientationColourBar$fHasPlacementColourBar$fHasStyleColourBar$fHasGapColourBar$fHasColourBarColourBarb BaseSpace SingleAxisaxes axisPlots currentPlots finalPlots plotModifieraxisSizecolourBarRangeaddPlot addPlotable addPlotable'r2AxisxAxisyAxiszAxiszLabelzMinzMaxrAxisrLabel thetaAxis thetaLabel polarAxis$fHasVisibilitySingleAxis$fHasAxisScalingfSingleAxis$fHasMinorGridLinesfSingleAxis$fHasMajorGridLinesfSingleAxis$fHasGridLinesfSingleAxis$fHasAxisLinefSingleAxis$fHasTickLabelsfSingleAxisb$fHasAxisLabelfSingleAxisb$fHasMinorTicksfSingleAxis$fHasMajorTicksfSingleAxis$fHasTicksfSingleAxis$fDefaultSingleAxis$fHasColourBarAxisb$fHasAxisStyleAxisb$fHasTitleAxisb$fHasLegendAxisb$fHasPlotStylefAxisb$fHasPlotOptionsfAxisb$fHasAxisScalingfAxis$fHasTickLabelsfAxisb$fHasAxisLabelfAxisb$fHasMinorGridLinesfAxis$fHasMajorGridLinesfAxis$fHasGridLinesfAxis$fHasMinorTicksfAxis$fHasMajorTicksfAxis$fHasTicksfAxis BubbleOptionsHasScatterOptionsgscatterOptionsscatterTransform scatterStylescatterPositionHasConnectingLineconnectingLineScatterOptions ScatterPlotmkScatterOptionsscatterOptions scatterPlot scatterPlot' scatterPlotOfscatterPlotOf' bubblePlot bubblePlot' bubblePlotOf bubblePlotOf' bubbleOptionsbubbleTransform bubbleStyle gscatterPlotgscatterOptionsFor$fPlotableScatterPlotb$fEnvelopedScatterPlot$fHasConnectingLinefAxis$fHasConnectingLinefStyledPlot$fHasConnectingLinefDynamicPlot$fHasConnectingLinefPlot$fHasConnectingLinefScatterPlot"$fHasConnectingLinefScatterOptions$fHasScatterOptionsfAxisa $fHasScatterOptionsfDynamicPlota$fHasScatterOptionsfPlota $fHasScatterOptionsfScatterPlotd$$fHasScatterOptionsfScatterOptionsd'PieStateHasWedgepieWedgewedgeOuterRadiuswedgeInnerRadius wedgeOffset wedgeWidthwedgeDirectionWedgemkWedgeonWedges wedgeKeyspiePlotpiePlot' wedgePlot$fPlotableWedgeb$fEnvelopedWedge$fHasWedgefAxis$fHasWedgefStyledPlot$fHasWedgefDynamicPlot$fHasWedgefPlot$fHasWedgefWedge$fHasWedgefPieState trailPlot trailPlot'pathPlot pathPlot'linePlot linePlot'smoothLinePlotsmoothLinePlot'mkTrail mkTrailOfmkPathmkPathOfHasHistogramOptionshistogramOptionsnumBinsbinRangenormaliseSampleHistogramOptionsNormalisationMethod HistogramPlotcomputedHistogrammkComputedHistogramcount probability countDensitypdf cumilativecdfmkHistogramPlot histogramPlothistogramPlot'histogramPlotOfhistogramPlotOf'$fHasOrientationHistogramPlot$fPlotableHistogramPlotb$fEnvelopedHistogramPlot$fDefaultNormalisationMethod $fHasOrientationHistogramOptions$fDefaultHistogramOptions$fHasHistogramOptionsPlot%$fHasHistogramOptionsHistogramOptions HasHeatMapheatMapOptionsheatMapGridVisibleheatMapGridStyle heatMapSize heatMapExtent heatMapStart heatMapCentre heatMapLimits heatMapRender HeatMatrixhmSize mkHeatMatrix mkHeatMatrix'hmPointspixelHeatRenderpixelHeatRender' heatImagepathHeatRender mkHeatMapheatMapheatMap'heatMapIndexedheatMapIndexed'$fPlotableHeatMapb$fEnvelopedHeatMap$fHasHeatMapfPlotb$fHasHeatMapfHeatMapb MultiBarStateBarPlot HasBarLayout barLayoutbarWidth barSpacingbarStart BarLayoutmkBarsmkFloatingBars mkRunningBars mkStackedBarsmkStackedEqualBars mkGroupedBarsbarPlot' namedBarPlot namedBarPlot'floatingBarPlot groupedBars groupedBars' stackedBarsstackedEqualBars runningBars multiBarsonBars labelBars$fHasOrientationBarLayout$fDefaultBarLayout$fHasBarLayoutPlot$fHasBarLayoutBarLayout$fHasBarLayoutBarPlot$fPlotableBarPlotb$fEnvelopedBarPlot$fHasOrientationBarPlot$fHasBarLayoutMultiBarState$fHasOrientationMultiBarState$fHasLabelsMultiBarState RenderAxis renderAxis r2AxisMain buildPlots$fToResultAxis$fRenderAxisbPolarn$fRenderAxisbV2n$fMainableAxis$fMainableAxis0$fShowLabelPosition$fEqLabelPositionlens-5.2.3-ba793483c6a3066003e3ea6f58e9a3824679ddab3459572687189a38c8d940f3Control.Lens.TypeIso'linear-1.22-a0424b1157cfbe261291e7e978a94a17e27ebda3c57b3ca606f5b560a4730f40 Linear.AffinePoint Linear.V2V2 Linear.V3V3 Linear.V1R1Diagrams.AngleAngleR2data-default-class-0.1.2.0-3d2e7065c9a7d56ba6a8dfe267bae22827089afaa9a2c513091e11a1f27e05c6Data.Default.ClassDefaultbase GHC.MaybeNothingLens'ghc-prim GHC.TypesDoubleMaybeJust asSizeSpec vectorScalingcolour-2.3.6-cddb80771a826f93e99610b445a354e8a459c8b7cbf2e7e41e1b1051d5031497Data.Colour.Nameslimemagentadiagrams-core-1.5.1-bc6742cf45dd6b3ea5e2412f1ba9f8d73e6712a5520066a2471db6c4dafdd3fcDiagrams.Core.StyleStyle Diagrams.PathPath filledMarkersDiagrams.TwoD.ShapessquareData.Colour.Internal transparentControl.Lens.Setter%=Control.Lens.Lens&~transformers-0.6.1.0Control.Monad.Trans.State.LazyStateTDiagrams.TrailLike fromVerticesDiagrams.Core.NamesNameGHC.BasememptyTrueDiagrams.BoundingBox BoundingBox dirBetween'StringStateFalseDiagrams.TwoD.TextmkText TextAlignmentBoxAlignedText Traversal' floatShowfontSizeDiagrams.Core.MeasureoutputFloatBoolDiagrams.AttributeslwOidLensLikeP2Control.Lens.Reified ReifiedFoldDiagrams.Core.TransformscaleSetter'TransformationDiagrams.TrailTrailDiagrams.CubicSpline cubicSplinerectBLrangeoriginminMaxvector-0.13.1.0-989cefeee18c9efb3aa13c9c63e0f830bc4be6a174532a153d8ceda1b869f78cData.Vector.Unboxed.BaseVectorJuicyPixels-3.3.8-2635f1942c9e5df1c1415b5e32f16fc181989f073237f03a1e705cc1da81e034Codec.Picture.Types ImageRGB8 scaleImageInt mbsLayoutmbsMods mbsLabels mbsBarFunrectBbarLayoutAxisLabels LabelPositionDiagrams.Backend.CmdLinemainWithboundingRadiusR