9(      !"#$%&'(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalrequires GHC>6 extensionsNone!"&*-345>CFIKLNU (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 /.0Build 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 0 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.1Cartesian product of intervals.2 Inverse of  uncurry (1). This is a partial function , since 3es can be empty.u456789:;<=>?@A()*+,-BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz$Number of subdivisions to "go down".{|}~012c456789:;<=>?@A()*+,-BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~012L456789:;<=>?@A()*+,-BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0120 1(c) Justus Sagemller 2013GPL v3!(@) sagemuej $ smail.uni-koeln.de experimentalrequires GHC>6 extensionsNone@-FG(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalrequires GHC>6 extensionsNone!"&*-345>CFIKLNU**(c) Justus Sagemller 2013-2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalrequires GHC>6 extensionsNone!"&*-345:>CFHIKLNU, 5 etc. can be used as arguments to some object you , if its rendering is to depend explicitly on the screen's visible range. You should not need to do that manually except for special applications (the standard plot objects like  ] already take the range into account anyway)  e.g. comparing with the linear regression of all visible points2 from some sample with some function's tangent at the screen center. PplotWindow [fnPlot sin, plot $ \(ViewXCenter xc) x -> sin xc + (x-xc) * cos xc]  %images/examples/sin-ctrd-tangents.gifHow 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.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 !$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 0 instead, if you want to view the diagram as-is.Plot a generic ..Plot 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.Simply 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 .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:  plotWindow [ fnPlot cos , tracePlot [(x,y) | x<-[-1,-0.96..1] , y<-[0,0.01..1] , abs (x^2 + y^2 - 1) < 0.01 ]] This gives such a plot window: 'images/examples/cos-encircle-points.png9And that can with the mouse wheel be zoomed/browsed, like 'images/examples/cos-encircle-points.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._Plot an (assumed continuous) function in the usual way. Since this uses functions of actual  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  can't really proove 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   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 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 ) function. Any simple expression like   (\x -> sin x / exp (x^2))< will work (but the view must not contain singularities).?Under the hood this uses the category of continuous functions, , to prove that no details are omitted (like small high-frequency bumps). The flip side is that this does not always work very efficiently, in fact it can easily become exponentially slow for some parameters. Make sure to run multithreaded, to prevent hanging your program this way. Also consider limiting the memory: if you try to plot across singularities, the program may well eat up all available resorces before failing. (But it will never succeed  and plot something wrong!)In the future, we would like to switch to the category of piecewise continuously-differentiable functions. That wouldn't suffer from said problems, and should also generally be more efficient. (That category is not yet implemented in Haskell.)!XPlot a continuous, parametric function , i.e. mapping the real line to a path in !."Coordinate axes with labels. For many plottable objects, these will be added automatically, by default (unless inhibited with #).$When you plot  $ / &, 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.%Like $i, 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 %).      Relative translation (xw, yh).Relative zoom. !"# !$%"#&'($%&')*+,-./0123456789:;<=>?@AB(  !"#$%&'( !$&%'   "#X         !"# !$%"#&'($%&')*+,-./0123456789:;<=>?@ABC        !"#$%&'()*+,-./0123456789:;;<<=>?@ABCDEEFGHIJKLMNOMPQRSTUVVWXYYZ[\\]^__`aabcddeefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789dynam_9UoWS4QDDaPI5FEfU1hsAFGraphics.Dynamic.Plot.R2$Graphics.Dynamic.Plot.Internal.TypesDrawColorplotDynamicPlottableGraphics.Dynamic.Plot.ColourGraphics.Text.AnnotationPlainGraphicsR2ViewYResolutiongetViewYResolutionViewXResolutiongetViewXResolution ViewHeight getViewHeight ViewWidth getViewWidth ViewYCentergetViewYCenter ViewXCentergetViewXCenter Plottable PlainGraphicsgetPlainGraphics shapePlot diagramPlot tracePlot lineSegPlot legendName plotWindow continFnPlotfnPlot paramPlot dynamicAxes noDynamicAxes xInterval forceXRange yInterval forceYRangeNeutralRedYellowGreenBlueColourdiagr_1mhPp5IxiqEAyRmJn66pfSDiagrams.Core.TypesDiagramdiagr_ADzV0gtlZaBCkrr0UpMpVjDiagrams.Backend.Cairo.InternalCairo...-*|xyRangesdiagr_7SkeDiGWIA379m7YLLRUOKDiagrams.BoundingBox BoundingBox NecessityIntervalGraphWindowSpecR2lBoundrBoundbBoundtBound xResolution yResolution colourScheme ColourScheme BaseColourContrastPaler CustomColourAColourFColourR2Box-.^> RecursivePCMRecursiveSamplesRecursiveSamples' rPCMlinFitdetailspFitDeviations samplingSpecsplIdLen rPCMNodeInfoPCMRangepcmStartpcmSampleDurationDevBoxes deviations maxDeviation LinFitParams constCoefflinCoeff SplitList getSplListDiffList getDiffList diffListLenTriplePairRP2R2^diffList presplitList splitEvenly fromDiffListlinFitMeanInCtrdUnitIntvfmapRPCMNodeInforecursiveSamples'lRouterRouterecursiveSamples recursivePCM splineRep l₀splineRep rPCMSamplerPCM_R2_boundingBoxrPCMLinFitRange solveToLinFit normlsdIdd realInterval onInterval± spInterval intersectsincludes shadeExtends superfluentprovidedceilflorfromInt$fSemigroupInterval$fShowGraphWindowSpecR2$fFunctorRecursiveSamples'$fSemigroupSplitList$fMonoidDiffList$fSemigroupDiffList$fPseudoAffinePoint$fSemimanifoldPoint$fAffineSpacePoint$fPseudoAffineV2$fSemimanifoldV2$fHasMetric'V2$fFiniteDimensionalV2$fInnerSpaceV2 $fHasBasisV2$fVectorSpaceV2$fAdditiveGroupV2$fAffineSpaceV2neutralcontrastgreymagentaredorangeyellowgreencyanbluevioletpaleroppositedefaultColourSchemedefaultColourSeq hueInvert LegendEntryplotObjectTitlecustomLegendObjectTextTK txtCairoStyletxtSizexAspectpadding extraTopPad DiagramTK textTools viewScopeTxtStyle Alignment AlignBottomAlignMidAlignTop TextAlignmenthAlignvAlignTextObj PlainTextAnnotationPlace ExactPlace AnnotationObjTextAnnotation Annotation getAnnotation placement isOptionalprettyFloatShowshowExponentAsSuperscript maybeReaddefaultTxtStyleprerenderAnnotationlgprerenderLegend occlusivenessghc-prim GHC.TypesDoublemanif_5gjRqkBmDHwCEKlyC8PvDh Data.Manifold:-->base GHC.FloatFloatingAxis axisPosition AxisClass visibleAxes axisStrength decPrecision DynamicAxes yAxisClasses xAxisClasses AxesStyleDynamicAxesStyle--> KeyActionMoveLeft MoveRightMoveUpMoveDownZoomIn_x ZoomOut_xZoomIn_y ZoomOut_y QuitProgram ScrollAction ScrollZoomIn ScrollZoomOut RangeRequestOtherDimDependantRangeMustBeThisRangeGraphViewStatelastStableView realtimeView nextTgtView graphColorrelevantRange_xrelevantRange_yisTintableMonochromic axesNecessity legendEntries dynamicPlotPlotplotAnnotationsgetPlotGraphWindowSpecresolutionFunctionflattenPCM_resoCutflattenPCM_P2_resoCutturnLeftrPCMPlotpixelDim moveStepRelgraphWindowWidthgraphWindowHeightmkPlotmkAnnotatedPlototherDimDependenceatLeastIntervalatLeastInterval'autoDefaultViewdefResXdefResYdefaultScrollBehaviourscrollZoomStrength defaultKeyMapdiffableFnPlotscrutiniseDiffabilitycontinColourSurfaceFnPlotcrtDynamicAxes simpleLine simpleLine' autoDashLine atExtendOf atExtendOf'$fPlottable(->)$fPlottable(->)0$fPlottable(->)1$fPlottable(->)2$fMonoidRangeRequest$fSemigroupRangeRequest$fDefaultDynamicPlottable$fMonoidDynamicPlottable$fSemigroupDynamicPlottable $fMonoidPlot$fSemigroupPlot$fPlottableGenericTree$fPlottableGenericTree0$fPlottableShade$fPlottableRecursiveSamples'$fPlottableRecursiveSamples'0$fPlottableRecursiveSamples'1$fPlottableRWDiffable$fPlottablePlainGraphics $fPlottable[]$fPlottable:-->$fPlottable:-->0$fPlottable(->)3$fPlottableDynamicPlottable