ɀ\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalrequires GHC>6 extensionsNone"#&'+03;<=>?FKNQSTV] c "The diagram has the original coordinates of the data that's plotted in it. E.g. if you've plotted an oscillation with amplitude 1e-4, the height of the plot will be indicated as only 0.0002. Mostly useful when you want to juxtapose multiple plots with correct scale matching.)The diagram is scaled to have a range of [-1, 1] in both x- and y-direction.4Scaled to pixel coordinates, i.e. the x range is  [0, xResV-1] and the y range  [0, yResV-1].0Either black or white, depending on the context.Contrast cyan.Contrast violet.Contrast magenta.Contrast orange.!Unlike the typical types such as , this one has semantic more than physical meaning.Use  to directly include any  . (All ) is internally rendered to that type.)BThe exact type may change in the future: we'll probably stay with diagramsh, but when document output is introduced the backend might become variable or something else but .Build an interval from specified boundary points. No matter which of these points is higher, the result will always be the interval in between (i.e., 3  1f will yield the interval [1,3], not an empty set or some "oriented interval" [3,1]). The fixity infixl 6: was chosen so you can write 2D bounding-boxes as e.g. -1...4 -*| -1...1.Cartesian product of intervals. Inverse of  uncurry (). This is a partial function , since es can be empty.$Number of subdivisions to "go down".   6 57(c) Justus Sagemller 2013GPL v3(@) jsag $ hvl.no experimentalrequires GHC>6 extensionsNone;=%     (c) Justus Sagemller 2018GPL v3!(@) sagemuej $ smail.uni-koeln.de experimentalrequires GHC>6 extensionsNone;=FT(- (c) Justus Sagemller 2015GPL v3(@) jsage $ hvl.no experimentalrequires GHC>6 extensionsNone"#&'+03;<=FKNQSTV]*/ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG $#"! %&('*-,+./1023456789<;:(c) Justus Sagemller 2013-2019GPL v3(@) jsag $ hvl.no experimentalrequires GHC>6 extensionsNone"#&'+03;<=BFKNPQSTV]HHow surface-occupying the plot is. Use positive values for opaque 2D plots that would tend to obscure other objects, negative values for sparse/small point plots. The z-order will be chosen accordingly.WA history of all clicks that were done in this window; more specifically, of all  left mouse-button release events recorded./Class for types that can be plotted in some canonical, obvious  way. If you want to display something and don't know about any specific caveats, try just using 0!1$Use a generic diagram within a plot.Like with the various specialised function plotters, this will get automatically tinted to be distinguishable from other plot objects in the same window. Use 20 instead, if you want to view the diagram as-is.2Plot a generic .3Plot a sequence of points (x,y). The appearance of the plot will be automatically chosen to match resolution and point density: at low densities, each point will simply get displayed on its own. When the density goes so high you couldn't distinguish individual points anyway, we switch to a trace view , approximating the probability density function around a local mean path , which is rather more insightful (and much less obstructive/clunky) than a simple cloud of independent points.In principle, this should be able to handle vast amounts of data (so you can, say, directly plot an audio file); at the moment the implementation isn't efficient enough and will get slow for more than some 100000 data points.4Simply connect the points by straight line segments, in the given order. Beware that this will always slow down the performance when the list is large; there is no &201c;statistic optimisation& 201d; as in 3.5GCombine multiple objects in a single plot. Each will get an individual 8; (if applicable). This is also the default behaviour of <.&To plot a family objects all with the same0 (but automatically-chosen) tint, simply use 0. on the list, or combine them monoidally with I.6Lazily consume the list, always plotting the latest value available as they arrive. Useful for displaying results of expensive computations that iteratively improve some result, but also for making simple animations (see P).7NSet the caption for this plot object that should appear in the plot legend.8)Colour this plot object in a fixed shade.9Allow the object to be automatically assigned a colour that's otherwise unused in the plot. (This is the default for most plot objects.)J7Assign each object an individual colour, if applicable.:_Render a single view of a collection of plottable objects. This can be used the same way as <:, but does not open any GTK but gives the result as-is.KIf the objects contain animations, only the initial frame will be rendered.;JRender the legend (if any) belonging to a collection of plottable objects.<Plot some plot objects to a new interactive GTK window. Useful for a quick preview of some unknown data or real-valued functions; things like selection of reasonable view range and colourisation are automatically chosen.Example: images/examples/HelloWorld.gifThe individual objects you want to plot can be evaluated in multiple threads, so a single hard calculatation won't freeze the responsitivity of the whole window. Invoke e.g. from  ghci +RTS -N4 to benefit from this.fATTENTION: the window may sometimes freeze, especially when displaying complicated functions with A from ghci. This is apparently a kind of deadlock problem with one of the C libraries that are invoked, At the moment, we can recommend no better solution than to abort and restart ghci (or what else you use  iHaskell kernel, process, ...) if this occurs.=Like <M, but with explicit specification how the window is supposed to show up. (<& uses the default configuration, i.e. K.)>}Require that both coordinate axes are zoomed the same way, such that e.g. the unit circle will appear as an actual circle.?_Plot an (assumed continuous) function in the usual way. Since this uses functions of actual L values, you have more liberty of defining functions with range-pattern-matching etc., which is at the moment not possible in the :--> category.However, because L can't really prove properties of a mathematical function, aliasing and similar problems are not taken into account. So it only works accurately when the function is locally linear on pixel scales (what most other plot programs just assume silently). In case of singularities, the nave thing is done (extend as far as possible; vertical line at sign change), which again is common enough though not really right.We'd like to recommend using A whenever possible, which automatically adjusts the resolution so the plot is guaranteed accurate (but it's not usable yet for a lot of real applications).@@Plot a function that assigns every point in view a colour value. > plotWindow [colourPaintPlot $ (x,y) -> case (x^2+y^2, atan2 y x) of (r,) -> guard (sin (7*-2*r) > r) >> Just (Dia.blend (tanh r) Dia.red Dia.green), unitAspect ]  images/examples/propeller.pngWe try to evaluate that function no more often than necessary, but since it's a plain function with no differentiability information there's only so much that can be done; this requires a tradeoff between rasterisation fineness and performance. It works well for simple, smooth functions, but may not be adequate for functions with strong edges/transients, nor for expensive to compute functions.APlot a continuous function in the usual way, taking arguments from the x-Coordinate and results to the y one. The signature looks more complicated than it is; think about it as requiring a polymorphic M) function. Any simple expression like A (\x -> sin x / cos (sqrt x)) will work.RUnder the hood this uses the category of region-wise differentiable functions, N, to prove that no details are omitted (like small high-frequency bumps). Note that this can become difficult for contrived cases like  cos(1/sin x)Z  while such functions will never come out with aliasing artifacts, they also may not come out quickly at all. (But for well-behaved functions, using the differentiable category actually tends to be more effective, because the algorithm immediately sees when it can describe an almost-linear region with only a few line segments.)%This function is equivalent to using 0 on an N arrow.CUPlot a continuous, parametric function , i.e. mapping the real line to a path in !.DCoordinate axes with labels. For many plottable objects, these will be added automatically, by default (unless inhibited with E).IWhen you plot  I / K, it is ensured that the (initial) view encompasses (at least) the specified range. Note there is nothing special about these flag  objects: any /o can request a certain view, e.g. for a discrete point cloud it's obvious and a function defines at least a y-range for a given x/-range. Only use explicit range when necessary.JLike Ii, this only affects what range is plotted. However, it doesn't merely request that a certain interval should be visible, but actually enforces particular values for the left and right boundary. Nothing outside the range will be plotted (unless there is another, contradicting J).MMove through a sequence of plottable objects, switching to the next whenever a click is received anywhere on the screen. Similar to 6(, but does not proceed automatically.OPlot something dependent on points that the user can interactively move around. The nearest point (Euclidean distance) is always picked to be dragged.PkLimit the refresh / frame rate for this plot object. Useful to slowly study some sequence of plots with 6#, or to just reduce processor load..Note: the argument will probably change to  ]http://hackage.haskell.org/package/thyme-0.3.5.5/docs/Data-Thyme-Clock.html#t:NominalDiffTimeNominalDiffTime from the  (http://hackage.haskell.org/package/thymethyme library soon.QODisable an animation, i.e. take an animated plot and show only the first frame.RBWait with starting the animation until the user has clicked on it.ORelative translation (xw, yh).Relative zoom.P  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRP:<=/0AC?34B@1256897;PQRIKJL>MON ,-.)*+&'(#$% !"DEFGH  PQRST UVWXYHZ[\]^_`abcdefghijklm !"#$%&'()*+,-.nopqrstuvwxyz{|}~/0     !!"##$%%&''())*++,--./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                            ! ! " # $ % & ' ( ) * * + , - . / 0 1 2 3 4 5 6 7 89:;<=>?@ABC:DEFGHIJJKLMNOPQRSTUVWXXYZ[\]^^_`abcddeffghijjklmnopqrrst+dynamic-plot-0.4.1.0-4x1wOiu64rmHiVVksCmNvbGraphics.Dynamic.Plot.R2$Graphics.Dynamic.Plot.Internal.TypesDrawColorplotDynamicPlottableGraphics.Dynamic.Plot.ColourGraphics.Image.ResampleGraphics.Text.AnnotationViewportConfigPrerenderScalingValuespaceScalingNormalisedScalingOutputCoordsScalingPlainGraphicsR2LegendDisplayConfiggraphicsPostprocessingprerenderScalingxResVyResVsetSolidBackground MouseEventlegendPrerenderSize clickLocationreleaseLocation$fMonoidInteractions$fSemigroupInteractions$fEqInteractions MousePressedmouseIsPressedAt MousePresslastMousePressedLocation MouseClicksgetClickPositionsViewYResolutiongetViewYResolutionViewXResolutiongetViewXResolution ViewHeight getViewHeight ViewWidth getViewWidth ViewYCentergetViewYCenter ViewXCentergetViewXCenter Plottable shapePlot diagramPlot tracePlot lineSegPlot plotMultiple plotLatest legendNametintautoTint plotPrerenderplotLegendPrerender plotWindow plotWindow' unitAspect continFnPlotcolourPaintPlotfnPlotlinregressionPlot paramPlot dynamicAxes noDynamicAxes xAxisLabel yAxisLabeltweakPrerendered xInterval forceXRange yInterval forceYRange clickThroughmouseInteractivewithDraggablePoints plotDelay freezeAnim startFrozen$fMonoidRangeRequest$fSemigroupRangeRequest$fDefaultDynamicPlottable'$fMonoidDynamicPlottable'$fSemigroupDynamicPlottable' $fMonoidPlot$fSemigroupPlot$fPlottableGenericTree$fPlottableGenericTree0$fPlottableGenericTree1$fPlottableGenericTree2$fPlottableGenericTree3$fPlottableGenericTree4$fPlottableGenericTree5$fPlottableLatest$fPlottableCutplane$fPlottableCutplane0$fPlottablePointsWeb$fPlottablePointsWeb0$fPlottablePointsWeb1$fPlottablePointsWeb2$fPlottablePointsWeb3$fPlottableShaded$fPlottableShade'$fPlottableShade'0$fPlottableConvexSet$fPlottableConvexSet0$fPlottableShade'1$fPlottableShade$fPlottableShade0$fPlottableShade1$fPlottableRecursiveSamples'$fPlottableRecursiveSamples'0$fPlottableRecursiveSamples'1$fPlottablePlainGraphics$fPlottableMaybe$fPlottableOption $fPlottable[]$fPlottable(->)$fPlottableDynamicPlottable'$fPlottableRWDiffable$fPlottableRWDiffable0$fPlottable(->)0$fPlottable(->)1$fPlottable(->)2$fPlottable(->)3$fPlottable(->)4$fPlottable(->)5$fPlottable(->)6$fSemigroupPlainGraphics$fMonoidPlainGraphicsNeutralRedYellowGreenBlueColour,diagrams-core-1.4.1.1-Hvo7HsYMa73L73oRTpFcoLDiagrams.Core.TypesDiagram+diagrams-cairo-1.4.1-5boSz1eA5mXJ9lnSUw7W4ZDiagrams.Backend.Cairo.InternalCairo...-*|xyRanges+diagrams-lib-1.4.2.3-1LlJQb3ZKHMBb3saUhfblZDiagrams.BoundingBox BoundingBox splineRep_graphicsPostprocessing_plotBackground_plotContentZoomFactor_prerenderScaling_yResV_xResVLatest getLatestOf NecessityIntervalGraphWindowSpecR2 colourSchemetBoundbBoundrBoundlBound yResolution xResolutionPColourSymbolicColour TrueColour ColourScheme BaseColour CustomColourPalerContrastAColourFColourR2Box-.^> RecursivePCMRecursiveSamplesRecursiveSamples' rPCMNodeInfosplIdLen samplingSpecpFitDeviationsdetails rPCMlinFitPCMRangepcmSampleDurationpcmStartDevBoxes maxDeviation deviations LinFitParamslinCoeff constCoeff SplitList getSplListDiffList diffListLen getDiffListTriplePairRP2R2^diffList presplitList splitEvenly fromDiffListlinFitMeanInCtrdUnitIntvfmapRPCMNodeInforecursiveSamples'lRouterRouterecursiveSamples recursivePCM l₀splineRep rPCMSamplerPCM_R2_boundingBoxrPCMLinFitRange solveToLinFit normlsdIdd windowCenterwindowDiameterwindowDataAspect realInterval onInterval± spInterval intersectsincludes shadeExtends superfluentprovidedceilflorfromInt_legendPrerenderSizeplotBackgroundplotContentZoomFactor_releaseLocation_clickLocationdefaultLegendLineHeight HasColour asAColourWithneutralcontrastgreymagentaredorangeyellowgreencyanbluevioletpaleroppositedefaultColourSchemedefaultColourSeq hueInvertscaleX2BilinearrefiningScaleX2BilinearnotablyDifferentbetween LegendEntry_customLegendObject_plotObjRepresentativeColour_plotObjectTitleTextTK extraTopPadpaddingxAspecttxtSize txtCairoStyle DiagramTK viewScope textToolsTxtStyle AlignmentAlignTopAlignMid AlignBottom TextAlignmentvAlignhAlignTextObj PlainTextAnnotationPlace ExactPlace AnnotationObjTextAnnotation Annotation isOptional placement getAnnotationprettyFloatShowshowExponentAsSuperscript maybeReadfromPlaintextObjdefaultTxtStyleprerenderAnnotationlgcustomLegendObjectplotObjRepresentativeColourplotObjectTitleprerenderLegend_occlusivenessbaseData.Semigroup<>chooseAutoTints1data-default-class-0.1.2.0-8hmGYd6GPAfLQPQcWKOjRmData.Default.Classdefghc-prim GHC.TypesDouble GHC.FloatFloating(manifolds-0.5.0.4-C6Em5VxxuDFIu5mlRd1KO7!Data.Function.Differentiable.Data RWDiffable moveStepRelPlot_plotAnnotations_getPlotDynamicPlottable'_relevantRange_x_relevantRange_y_viewportConstraint_inherentColours_axesNecessity _frameDelay_legendEntries_axisLabelRequests _futurePlots_dynamicPlotWithAxisLabels Interactions_mouseClicksCompleted_currentDragEndpoints RangeRequestOtherDimDependantRangeMustBeThisRange ObjInPlot_lastStableView _newPlotView_mouseEventsForObj_plotObjColour_originalPlotObjectAxis axisPosition AxisClass visibleAxes axisStrength decPrecision DynamicAxes yAxisClasses xAxisClasses AxesStyleDynamicAxesStyle ScrollAction ScrollZoomIn ScrollZoomOut PlainGraphicsgetPlainGraphics