From ef0aea33f0a2c931556f5f675f80e824aa7e653d Mon Sep 17 00:00:00 2001 From: Alex Harsanyi Date: Mon, 10 Aug 2020 18:21:51 +0800 Subject: [PATCH 1/4] Allow pictures to be used as legend entries in plots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated 2D and 3D plot renderers to accept a picture (from the pict library) or a string as the label used in the plot legend. The original request was to allow LaTeX notation for the labels, this changeset will enable doing that (and more) by installing the additional `latex-pict` package and using the pictures produced by that package as labels. When updated the code which draws the legend, several considerations were made: * the `get-text-extent` method of `plot-device%` accepts a pict as an argument and will return the picture dimensions in that case. The method was not renamed, however. * the font used for text legend entries determines the inset (inside border) of the legend, gap between entries and length of the "sample" line. This was essentially unchanged behavior and using the pict dimensions for this purpose results in bad looking legends, where the inset is too small, the sample line too long and gap too big. Also updated some of the examples in the documentation to replace x^2 with x², to illustrate that Unicode can be used for the string labels. See also * https://github.com/racket/plot/issues/58 * https://github.com/racket/racket/issues/3321 --- plot-doc/plot/scribblings/contracts.scrbl | 2 +- plot-doc/plot/scribblings/renderer2d.scrbl | 54 +++++++------ plot-doc/plot/scribblings/renderer3d.scrbl | 38 ++++----- plot-lib/plot/private/common/legend.rkt | 17 ++-- plot-lib/plot/private/common/plot-device.rkt | 48 ++++++++---- plot-lib/plot/private/common/types.rkt | 8 +- plot-lib/plot/private/plot2d/contour.rkt | 13 ++-- plot-lib/plot/private/plot2d/interval.rkt | 17 ++-- plot-lib/plot/private/plot2d/line.rkt | 25 +++--- plot-lib/plot/private/plot2d/point.rkt | 9 ++- plot-lib/plot/private/plot2d/rectangle.rkt | 9 ++- plot-lib/plot/private/plot3d/contour.rkt | 13 ++-- plot-lib/plot/private/plot3d/isosurface.rkt | 13 ++-- plot-lib/plot/private/plot3d/line.rkt | 9 ++- plot-lib/plot/private/plot3d/param-surf.rkt | 9 ++- plot-lib/plot/private/plot3d/point.rkt | 9 ++- plot-lib/plot/private/plot3d/rectangle.rkt | 7 +- plot-lib/plot/private/plot3d/surface.rkt | 5 +- plot-test/plot/tests/PRs/58.rkt | 73 ++++++++++++++++++ .../plot/tests/PRs/test-data/pr58-2d.dat | Bin 0 -> 13628 bytes .../plot/tests/PRs/test-data/pr58-2d.png | Bin 0 -> 74959 bytes .../plot/tests/PRs/test-data/pr58-3d.dat | Bin 0 -> 62082 bytes .../plot/tests/PRs/test-data/pr58-3d.png | Bin 0 -> 78812 bytes plot-test/plot/tests/helpers.rkt | 2 +- 24 files changed, 245 insertions(+), 135 deletions(-) create mode 100644 plot-test/plot/tests/PRs/58.rkt create mode 100644 plot-test/plot/tests/PRs/test-data/pr58-2d.dat create mode 100644 plot-test/plot/tests/PRs/test-data/pr58-2d.png create mode 100644 plot-test/plot/tests/PRs/test-data/pr58-3d.dat create mode 100644 plot-test/plot/tests/PRs/test-data/pr58-3d.png diff --git a/plot-doc/plot/scribblings/contracts.scrbl b/plot-doc/plot/scribblings/contracts.scrbl index 31dbef6c..231abb24 100644 --- a/plot-doc/plot/scribblings/contracts.scrbl +++ b/plot-doc/plot/scribblings/contracts.scrbl @@ -202,7 +202,7 @@ Like @(racket plot-colors/c), but for fill styles. Like @(racket plot-colors/c), but for opacities. } -@defproc[(labels/c [in-contract contract?]) contract? #:value (maybe-function/c in-contract (listof (or/c string? #f)))]{ +@defproc[(labels/c [in-contract contract?]) contract? #:value (maybe-function/c in-contract (listof (or/c string? pict? #f)))]{ Like @racket[plot-colors/c], but for strings. This is used, for example, to label @racket[stacked-histogram]s. } diff --git a/plot-doc/plot/scribblings/renderer2d.scrbl b/plot-doc/plot/scribblings/renderer2d.scrbl index 8a5c1835..386fbed6 100644 --- a/plot-doc/plot/scribblings/renderer2d.scrbl +++ b/plot-doc/plot/scribblings/renderer2d.scrbl @@ -39,7 +39,13 @@ Every appearance keyword argument defaults to the value of a parameter. This allows whole families of plots to be altered with little work. For example, setting @(racket (line-color 3)) causes every subsequent renderer that draws connected lines to draw its lines in blue. -@bold{Label argument.} Lastly, there is @(racket #:label). If given, the @(racket function) renderer will generate a label entry that @(racket plot) puts in the legend. +@bold{Label argument.} Lastly, there is @(racket #:label). If given, the +@(racket function) renderer will generate a label entry that @(racket plot) +puts in the legend. The label argument can be a string or a @(racket pict). +For most use cases, the string will be sufficient, especially since it allows +using Unicode characters, and thus some mathematical notation. For more +complex cases, a @(racket pict) can be used, whic allows arbitrary text and +graphics to be used as label entries. Not every renderer-producing function has a @(racket #:label) argument; for example, @(racket error-bars). @@ -57,7 +63,7 @@ Not every renderer-producing function has a @(racket #:label) argument; for exam [#:size size (>=/c 0) (point-size)] [#:line-width line-width (>=/c 0) (point-line-width)] [#:alpha alpha (real-in 0 1) (point-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a @tech{renderer} that draws points. Use it, for example, to draw 2D scatter plots. @@ -127,7 +133,7 @@ For example: [#:line-width line-width (>=/c 0) (vector-field-line-width)] [#:line-style line-style plot-pen-style/c (vector-field-line-style)] [#:alpha alpha (real-in 0 1) (vector-field-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that draws a vector field. @@ -196,7 +202,7 @@ fourth, and fifth elements in each vector comprise the open, high, low, and clos [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that plots a function of @italic{x}. For example, a parabola: @interaction[#:eval plot-eval (plot (function sqr -2 2))] @@ -210,15 +216,15 @@ Returns a renderer that plots a function of @italic{x}. For example, a parabola: [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Like @(racket function), but regards @(racket f) as a function of @italic{y}. For example, a parabola, an inverse parabola, and the reflection line: @interaction[#:eval plot-eval (plot (list (axes) - (function sqr -2 2 #:label "y = x^2") + (function sqr -2 2 #:label "y = x²") (function (λ (x) x) #:color 0 #:style 'dot #:label "y = x") - (inverse sqr -2 2 #:color 3 #:label "x = y^2")))] + (inverse sqr -2 2 #:color 3 #:label "x = y²")))] } @defproc[(lines [vs (sequence/c (sequence/c #:min-count 2 real?))] @@ -228,7 +234,7 @@ For example, a parabola, an inverse parabola, and the reflection line: [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that draws lines. This is directly useful for plotting a time series, such as a random walk: @@ -252,7 +258,7 @@ The @(racket parametric) and @(racket polar) functions are defined using @(racke [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that plots vector-valued functions of time. For example, the circle as a function of time can be plotted using @@ -269,7 +275,7 @@ For example, the circle as a function of time can be plotted using [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that plots functions from angle to radius. Note that the angle parameters @(racket θ-min) and @(racket θ-max) default to @(racket 0) and @(racket (* 2 pi)). @@ -288,7 +294,7 @@ For example, drawing a full circle: [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that plots an estimated density for the given points, which are optionally weighted by @racket[ws]. The bandwidth for the kernel is calculated as @(racket (* bw-adjust 1.06 sd (expt n -0.2))), where @(racket sd) is the standard deviation of the data and @(racket n) is the number of points. @@ -312,7 +318,7 @@ For example, to plot an estimated density of the triangle distribution: [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Draws a horizontal line at @italic{y}. By default, the line spans the entire plot area width. @@ -324,7 +330,7 @@ By default, the line spans the entire plot area width. [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Draws a vertical line at @italic{x}. By default, the line spans the entire plot area height. @@ -348,7 +354,7 @@ These renderers each correspond with a line renderer, and graph the area between [#:line2-width line2-width (>=/c 0) (interval-line2-width)] [#:line2-style line2-style plot-pen-style/c (interval-line2-style)] [#:alpha alpha (real-in 0 1) (interval-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Corresponds with @(racket function). @@ -370,7 +376,7 @@ Corresponds with @(racket function). [#:line2-width line2-width (>=/c 0) (interval-line2-width)] [#:line2-style line2-style plot-pen-style/c (interval-line2-style)] [#:alpha alpha (real-in 0 1) (interval-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Corresponds with @(racket inverse). @@ -392,7 +398,7 @@ Corresponds with @(racket inverse). [#:line2-width line2-width (>=/c 0) (interval-line2-width)] [#:line2-style line2-style plot-pen-style/c (interval-line2-style)] [#:alpha alpha (real-in 0 1) (interval-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Corresponds with @(racket lines). @@ -420,7 +426,7 @@ Corresponds with @(racket lines). [#:line2-width line2-width (>=/c 0) (interval-line2-width)] [#:line2-style line2-style plot-pen-style/c (interval-line2-style)] [#:alpha alpha (real-in 0 1) (interval-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Corresponds with @(racket parametric). @@ -447,7 +453,7 @@ Corresponds with @(racket parametric). [#:line2-width line2-width (>=/c 0) (interval-line2-width)] [#:line2-style line2-style plot-pen-style/c (interval-line2-style)] [#:alpha alpha (real-in 0 1) (interval-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Corresponds with @(racket polar). @@ -469,7 +475,7 @@ Corresponds with @(racket polar). [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that plots a contour line, or a line of constant value (height). A circle of radius @(racket r), for example, is the line of constant value @(racket r) for the distance function: @@ -491,7 +497,7 @@ It may be renamed in the future, with @racket[isoline] as an alias. [#:widths widths (pen-widths/c (listof real?)) (contour-widths)] [#:styles styles (plot-pen-styles/c (listof real?)) (contour-styles)] [#:alphas alphas (alphas/c (listof real?)) (contour-alphas)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that plots contour lines, or lines of constant value (height). @@ -527,7 +533,7 @@ For example, [#:contour-widths contour-widths (pen-widths/c (listof real?)) (contour-widths)] [#:contour-styles contour-styles (plot-pen-styles/c (listof real?)) (contour-styles)] [#:alphas alphas (alphas/c (listof ivl?)) (contour-interval-alphas)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that fills the area between contour lines, and additionally draws contour lines. @@ -551,7 +557,7 @@ For example, the canonical saddle, with its gradient field superimposed: [#:line-width line-width (>=/c 0) (rectangle-line-width)] [#:line-style line-style plot-pen-style/c (rectangle-line-style)] [#:alpha alpha (real-in 0 1) (rectangle-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that draws rectangles. @@ -577,7 +583,7 @@ For example, [#:line-width line-width (>=/c 0) (rectangle-line-width)] [#:line-style line-style plot-pen-style/c (rectangle-line-style)] [#:alpha alpha (real-in 0 1) (rectangle-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer2d?]{ Returns a renderer that draws a histogram approximating the area under a curve. The @(racket #:samples) argument determines the accuracy of the calculated areas. @@ -602,7 +608,7 @@ The @(racket #:samples) argument determines the accuracy of the calculated areas [#:line-width line-width (>=/c 0) (rectangle-line-width)] [#:line-style line-style plot-pen-style/c (rectangle-line-style)] [#:alpha alpha (real-in 0 1) (rectangle-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] [#:add-ticks? add-ticks? boolean? #t] [#:far-ticks? far-ticks? boolean? #f] ) renderer2d?]{ diff --git a/plot-doc/plot/scribblings/renderer3d.scrbl b/plot-doc/plot/scribblings/renderer3d.scrbl index d00f0ab6..44e50cad 100644 --- a/plot-doc/plot/scribblings/renderer3d.scrbl +++ b/plot-doc/plot/scribblings/renderer3d.scrbl @@ -34,7 +34,7 @@ See @secref["renderer2d-function-arguments"] for a detailed example. [#:size size (>=/c 0) (point-size)] [#:line-width line-width (>=/c 0) (point-line-width)] [#:alpha alpha (real-in 0 1) (point-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that draws points in 3D space. @@ -76,7 +76,7 @@ See the documentation for @racket[points] for examples where jittering may be ap [#:line-width line-width (>=/c 0) (vector-field-line-width)] [#:line-style line-style plot-pen-style/c (vector-field-line-style)] [#:alpha alpha (real-in 0 1) (vector-field-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that draws a vector field in 3D space. The arguments are interpreted identically to the corresponding arguments to @racket[vector-field]. @@ -96,7 +96,7 @@ The arguments are interpreted identically to the corresponding arguments to @rac [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that draws connected lines. The @racket[parametric3d] function is defined in terms of this one. @@ -113,7 +113,7 @@ The @racket[parametric3d] function is defined in terms of this one. [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots a vector-valued function of time. For example, @interaction[#:eval plot-eval @@ -137,14 +137,14 @@ Returns a renderer that plots a vector-valued function of time. For example, [#:line-width line-width (>=/c 0) (surface-line-width)] [#:line-style line-style plot-pen-style/c (surface-line-style)] [#:alpha alpha (real-in 0 1) (surface-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots a two-input, one-output function. For example, @interaction[#:eval plot-eval (plot3d (list (surface3d (λ (x y) (+ (sqr x) (sqr y))) -1 1 -1 1 - #:label "z = x^2 + y^2") + #:label "z = x² + y²") (surface3d (λ (x y) (- (+ (sqr x) (sqr y)))) -1 1 -1 1 #:color 4 #:line-color 4 - #:label "z = -x^2 - y^2")))] + #:label "z = -x² - y²")))] } @defproc[(polar3d @@ -159,7 +159,7 @@ Returns a renderer that plots a two-input, one-output function. For example, [#:line-width line-width (>=/c 0) (surface-line-width)] [#:line-style line-style plot-pen-style/c (surface-line-style)] [#:alpha alpha (real-in 0 1) (surface-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots a function from longitude and latitude to radius. @racket[(f θ ϕ)] → @racket[r] @@ -199,7 +199,7 @@ Combining polar function renderers allows faking latitudes or longitudes in larg [#:line-width line-width (>=/c 0) (surface-line-width)] [#:line-style line-style plot-pen-style/c (surface-line-style)] [#:alpha alpha (real-in 0 1) (surface-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots a two-input, one-output function. @racket[(f s t)] → @racket['(x y z)] @@ -238,7 +238,7 @@ For example, [#:line-width line-width (>=/c 0) (surface-line-width)] [#:line-style line-style plot-pen-style/c (surface-line-style)] [#:alpha alpha (real-in 0 1) (surface-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that draws polygons. The @racket[parametric-surface3d] function is defined in terms of this one. @@ -262,7 +262,7 @@ The @racket[parametric-surface3d] function is defined in terms of this one. [#:width width (>=/c 0) (line-width)] [#:style style plot-pen-style/c (line-style)] [#:alpha alpha (real-in 0 1) (line-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots a single contour line on the surface of a function. @@ -286,7 +286,7 @@ This function is not terribly useful by itself, but can be when combined with ot [#:widths widths (pen-widths/c (listof real?)) (contour-widths)] [#:styles styles (plot-pen-styles/c (listof real?)) (contour-styles)] [#:alphas alphas (alphas/c (listof real?)) (contour-alphas)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots contour lines on the surface of a function. @@ -295,7 +295,7 @@ In particular, when @(racket levels) is @(racket 'auto), contour values correspo For example, @interaction[#:eval plot-eval (plot3d (contours3d (λ (x y) (+ (sqr x) (sqr y))) -1.1 1.1 -1.1 1.1 - #:label "z = x^2 + y^2"))] + #:label "z = x² + y²"))] } @defproc[(contour-intervals3d @@ -314,7 +314,7 @@ For example, [#:contour-widths contour-widths (pen-widths/c (listof real?)) (contour-widths)] [#:contour-styles contour-styles (plot-pen-styles/c (listof real?)) (contour-styles)] [#:alphas alphas (alphas/c (listof ivl?)) (contour-interval-alphas)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots contour intervals and contour lines on the surface of a function. The appearance keyword arguments are interpreted identically to the appearance keyword arguments to @(racket contour-intervals). @@ -322,7 +322,7 @@ The appearance keyword arguments are interpreted identically to the appearance k For example, @interaction[#:eval plot-eval (plot3d (contour-intervals3d (λ (x y) (+ (sqr x) (sqr y))) -1.1 1.1 -1.1 1.1 - #:label "z = x^2 + y^2"))] + #:label "z = x² + y²"))] } @section{3D Isosurface Renderers} @@ -339,7 +339,7 @@ For example, [#:line-width line-width (>=/c 0) (surface-line-width)] [#:line-style line-style plot-pen-style/c (surface-line-style)] [#:alpha alpha (real-in 0 1) (surface-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots the surface of constant output value of the function @(racket f). The argument @(racket d) is the constant value. @@ -364,7 +364,7 @@ For example, a sphere is all the points in which the Euclidean distance function [#:line-widths line-widths (pen-widths/c (listof real?)) (isosurface-line-widths)] [#:line-styles line-styles (plot-pen-styles/c (listof real?)) (isosurface-line-styles)] [#:alphas alphas (alphas/c (listof real?)) (isosurface-alphas)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that plots multiple isosurfaces. The appearance keyword arguments are interpreted similarly to those of @(racket contours). @@ -392,7 +392,7 @@ If it helps, think of the output of @(racket f) as a density or charge. [#:line-width line-width (>=/c 0) (rectangle3d-line-width)] [#:line-style line-style plot-pen-style/c (rectangle-line-style)] [#:alpha alpha (real-in 0 1) (rectangle-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] ) renderer3d?]{ Returns a renderer that draws rectangles. @@ -430,7 +430,7 @@ This can be used to draw histograms; for example, [#:line-width line-width (>=/c 0) (rectangle3d-line-width)] [#:line-style line-style plot-pen-style/c (rectangle-line-style)] [#:alpha alpha (real-in 0 1) (rectangle-alpha)] - [#:label label (or/c string? #f) #f] + [#:label label (or/c string? pict? #f) #f] [#:add-x-ticks? add-x-ticks? boolean? #t] [#:add-y-ticks? add-y-ticks? boolean? #t] [#:x-far-ticks? x-far-ticks? boolean? #f] diff --git a/plot-lib/plot/private/common/legend.rkt b/plot-lib/plot/private/common/legend.rkt index 71583451..4d13b250 100644 --- a/plot-lib/plot/private/common/legend.rkt +++ b/plot-lib/plot/private/common/legend.rkt @@ -3,6 +3,7 @@ ;; Functions that create legend entries and lists of legend entries. (require racket/class racket/match racket/list racket/string + (only-in typed/pict pict) "type-doc.rkt" "math.rkt" "format.rkt" @@ -14,7 +15,7 @@ ;; =================================================================================================== ;; Line legends -(:: line-legend-entry (-> String Plot-Color Nonnegative-Real Plot-Pen-Style legend-entry)) +(:: line-legend-entry (-> (U String pict) Plot-Color Nonnegative-Real Plot-Pen-Style legend-entry)) (define (line-legend-entry label color width style) (legend-entry label (λ (pd x-size y-size) (define y (* 1/2 y-size)) @@ -22,7 +23,7 @@ (send pd set-alpha 1) (send pd draw-line (vector (ann 0 Real) y) (vector x-size y))))) -(:: line-legend-entries (-> String (Listof Real) (Listof String) +(:: line-legend-entries (-> (U String pict) (Listof Real) (Listof String) (Plot-Colors (Listof Real)) (Pen-Widths (Listof Real)) (Plot-Pen-Styles (Listof Real)) @@ -51,7 +52,7 @@ ;; =================================================================================================== ;; Rectangle legends -(:: rectangle-legend-entry (-> String +(:: rectangle-legend-entry (-> (U String pict) Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style legend-entry)) @@ -63,7 +64,7 @@ (send pd draw-rect (vector (ivl 0 x-size) (ivl 0 y-size)))))) (:: rectangle-legend-entries - (-> String (Listof Real) + (-> (U String pict) (Listof Real) (Plot-Colors (Listof Real)) (Plot-Brush-Styles (Listof Real)) (Plot-Colors (Listof Real)) (Pen-Widths (Listof Real)) (Plot-Pen-Styles (Listof Real)) (Listof legend-entry))) @@ -97,7 +98,7 @@ ;; =================================================================================================== ;; Interval legends -(:: interval-legend-entry (-> String +(:: interval-legend-entry (-> (U String pict) Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style Plot-Color Nonnegative-Real Plot-Pen-Style @@ -123,7 +124,7 @@ (vector x-size (ann 0 Real)))))) (:: interval-legend-entries - (-> String (Listof ivl) (Listof String) + (-> (U String pict) (Listof ivl) (Listof String) (Plot-Colors (Listof ivl)) (Plot-Brush-Styles (Listof ivl)) (Plot-Colors (Listof ivl)) (Pen-Widths (Listof ivl)) (Plot-Pen-Styles (Listof ivl)) (Plot-Colors (Listof ivl)) (Pen-Widths (Listof ivl)) (Plot-Pen-Styles (Listof ivl)) @@ -178,7 +179,7 @@ ;; =================================================================================================== ;; Point legends -(:: point-legend-entry (-> String Point-Sym Plot-Color Plot-Color Nonnegative-Real Nonnegative-Real +(:: point-legend-entry (-> (U String pict) Point-Sym Plot-Color Plot-Color Nonnegative-Real Nonnegative-Real legend-entry)) (define (point-legend-entry label sym color fill-color size line-width) (legend-entry label (λ (pd x-size y-size) @@ -188,7 +189,7 @@ (send pd draw-glyphs (list (vector (* 1/2 x-size) (* 1/2 y-size))) sym size)))) -(:: arrow-legend-entry (-> String Plot-Color Nonnegative-Real Plot-Pen-Style legend-entry)) +(:: arrow-legend-entry (-> (U String pict) Plot-Color Nonnegative-Real Plot-Pen-Style legend-entry)) (define (arrow-legend-entry label color line-width line-style) (legend-entry label (λ (pd x-size y-size) (send pd set-pen color line-width line-style) diff --git a/plot-lib/plot/private/common/plot-device.rkt b/plot-lib/plot/private/common/plot-device.rkt index b3f7f471..f30bb5d7 100644 --- a/plot-lib/plot/private/common/plot-device.rkt +++ b/plot-lib/plot/private/common/plot-device.rkt @@ -8,6 +8,7 @@ (require typed/racket/draw typed/racket/class + (only-in typed/pict pict pict? pict-width pict-height pict-descent pict-ascent) racket/match racket/math racket/bool racket/list racket/vector "draw-attribs.rkt" "color-map.rkt" @@ -270,7 +271,7 @@ ;; Sets only the font size, not the face or family. (define/public (set-font-size size) - (set-font-attribs size + (set-font-attribs size (send (send dc get-font) get-face) (send (send dc get-font) get-family))) @@ -286,7 +287,13 @@ ;; Returns the extent of a string, as exact reals. (define/public (get-text-extent str) (define-values (w h b d) - (send dc get-text-extent str #f #t 0)) + (cond ((string? str) + (send dc get-text-extent str #f #t 0)) + ((pict? str) + (values (pict-width str) (pict-height str) + (pict-descent str) (pict-ascent str))) + (#t + (values 0 0 0 0)))) (values (inexact->exact w) (inexact->exact h) (inexact->exact b) (inexact->exact d))) @@ -587,13 +594,13 @@ (define/public (draw-legend legend-entries rect) (define n (length legend-entries)) - (match-define (list (legend-entry #{labels : (Listof String)} + (match-define (list (legend-entry #{labels : (Listof (U String pict))} #{draw-procs : (Listof Legend-Draw-Proc)}) ...) legend-entries) (match-define (vector (ivl x-min x-max) (ivl y-min y-max)) rect) - + (define old-size (send (send dc get-font) get-point-size)) (define old-face (send (send dc get-font) get-face)) (define old-family (send (send dc get-font) get-family)) @@ -602,16 +609,23 @@ (or (plot-legend-font-face) old-face) (or (plot-legend-font-family) old-family)) - (define-values (_1 label-y-size baseline _2) (get-text-extent (first labels))) - (define horiz-gap (get-text-width " ")) + (define-values (max-label-width max-label-height) + (for/fold ([width : Exact-Rational 0] + [max-height : Exact-Rational 0]) + ([label (in-list labels)]) + (define-values (w h b a) (get-text-extent label)) + (values (max w width) (max h max-height)))) + + (define-values (horiz-gap min-label-height baseline _1) + (get-text-extent " ")) + (define top-gap baseline) (define bottom-gap (* 1/2 baseline)) - (define baseline-skip (+ label-y-size baseline)) + (define baseline-skip (+ max-label-height baseline)) - (define max-label-x-size (apply max (map (λ ([label : String]) (get-text-width label)) labels))) - (define labels-x-size (+ max-label-x-size horiz-gap)) + (define labels-x-size (+ max-label-width horiz-gap)) - (define draw-y-size (max 0 (- label-y-size baseline))) + (define draw-y-size (max 0 (- min-label-height baseline))) (define draw-x-size (* 4 draw-y-size)) (define legend-x-size (+ horiz-gap @@ -661,11 +675,15 @@ (set-alpha (plot-foreground-alpha)) (set-clipping-rect legend-rect) - (for ([label (in-list labels)] [draw-proc (in-list draw-procs)] [i (in-naturals)]) - (define label-y-min (+ legend-y-min top-gap (* i baseline-skip))) - (draw-text label (vector (ann label-x-min Real) (ann label-y-min Real)) 'top-left 0 0 #t) + (for ([label (in-list labels)] [draw-proc (in-list draw-procs)] [i (in-naturals)]) + (define-values (_1 label-height _2 _3) (get-text-extent label)) + (define legend-entry-y-min (+ legend-y-min top-gap (* i baseline-skip))) + (define label-y-min (+ legend-entry-y-min (* 1/2 (- max-label-height label-height)))) + (if (pict? label) + (draw-pict label (vector (ann label-x-min Real) (ann label-y-min Real)) 'top-left 0) + (draw-text label (vector (ann label-x-min Real) (ann label-y-min Real)) 'top-left 0 0 #t)) - (define draw-y-min (+ label-y-min (* 1/2 baseline))) + (define draw-y-min (+ legend-entry-y-min (* 1/2 (- max-label-height draw-y-size)))) (define entry-pd (make-object plot-device% dc draw-x-min draw-y-min draw-x-size draw-y-size)) (send entry-pd reset-drawing-params #f) @@ -674,6 +692,6 @@ ;; reset plot font attributes (set-font-attribs old-size old-face old-family) - + (clear-clipping-rect)) )) ; end class diff --git a/plot-lib/plot/private/common/types.rkt b/plot-lib/plot/private/common/types.rkt index 0bc33f79..6fc16c56 100644 --- a/plot-lib/plot/private/common/types.rkt +++ b/plot-lib/plot/private/common/types.rkt @@ -79,7 +79,7 @@ (deftype (Pen-Widths A) (List-Generator A Nonnegative-Real)) (deftype (Plot-Brush-Styles A) (List-Generator A Plot-Brush-Style)) (deftype (Alphas A) (List-Generator A Nonnegative-Real)) -(deftype (Labels A) (List-Generator A (U String #f))) +(deftype (Labels A) (List-Generator A (U String pict #f))) (deftype Contour-Levels (U 'auto Positive-Integer (Listof Real))) @@ -90,7 +90,7 @@ (deftype Legend-Draw-Proc (-> (Instance Plot-Device%) Real Real Void)) -(struct legend-entry ([label : String] [draw : Legend-Draw-Proc]) #:transparent) +(struct legend-entry ([label : (U String pict)] [draw : Legend-Draw-Proc]) #:transparent) (define-type Plot-Device% (Class @@ -113,8 +113,8 @@ [set-font-size (-> Real Void)] [get-char-height (-> Exact-Rational)] [get-char-baseline (-> Exact-Rational)] - [get-text-extent (-> String (Values Exact-Rational Exact-Rational Exact-Rational Exact-Rational))] - [get-text-width (-> String Exact-Rational)] + [get-text-extent (-> (U String pict) (Values Exact-Rational Exact-Rational Exact-Rational Exact-Rational))] + [get-text-width (-> (U String pict) Exact-Rational)] [set-text-foreground (-> Plot-Color Void)] [set-clipping-rect (-> Rect Void)] [clear-clipping-rect (-> Void)] diff --git a/plot-lib/plot/private/plot2d/contour.rkt b/plot-lib/plot/private/plot2d/contour.rkt index 1a05bc86..d0a4ef1e 100644 --- a/plot-lib/plot/private/plot2d/contour.rkt +++ b/plot-lib/plot/private/plot2d/contour.rkt @@ -3,6 +3,7 @@ ;; Renderers for contour lines and contour intervals (require typed/racket/class racket/match racket/list racket/vector + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -15,7 +16,7 @@ (: isoline-render-proc (-> 2D-Sampler Real Positive-Integer Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((isoline-render-proc g z samples color width style alpha label) area) (match-define (vector x-ivl y-ivl) (send area get-bounds-rect)) @@ -46,7 +47,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (isoline f z [x-min #f] [x-max #f] [y-min #f] [y-max #f] #:samples [samples (contour-samples)] @@ -81,7 +82,7 @@ (Pen-Widths (Listof Real)) (Plot-Pen-Styles (Listof Real)) (Alphas (Listof Real)) - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((contours-render-proc g levels samples colors widths styles alphas label) area) (let/ec return : (Treeof legend-entry) @@ -130,7 +131,7 @@ #:widths (Pen-Widths (Listof Real)) #:styles (Plot-Pen-Styles (Listof Real)) #:alphas (Alphas (Listof Real)) - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (contours f [x-min #f] [x-max #f] [y-min #f] [y-max #f] #:samples [samples (contour-samples)] @@ -163,7 +164,7 @@ (Plot-Colors (Listof ivl)) (Plot-Brush-Styles (Listof ivl)) (Plot-Colors (Listof Real)) (Pen-Widths (Listof Real)) (Plot-Pen-Styles (Listof Real)) (Alphas (Listof ivl)) - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((contour-intervals-render-proc g levels samples colors styles contour-colors contour-widths contour-styles alphas label) @@ -240,7 +241,7 @@ #:contour-widths (Pen-Widths (Listof Real)) #:contour-styles (Plot-Pen-Styles (Listof Real)) #:alphas (Alphas (Listof ivl)) - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (contour-intervals f [x-min #f] [x-max #f] [y-min #f] [y-max #f] diff --git a/plot-lib/plot/private/plot2d/interval.rkt b/plot-lib/plot/private/plot2d/interval.rkt index d43d80f9..19993525 100644 --- a/plot-lib/plot/private/plot2d/interval.rkt +++ b/plot-lib/plot/private/plot2d/interval.rkt @@ -3,6 +3,7 @@ ;; Renderers for intervals between functions. (require typed/racket/class racket/match racket/math racket/list + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -17,7 +18,7 @@ Plot-Color Nonnegative-Real Plot-Pen-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((lines-interval-render-proc v1s v2s color style line1-color line1-width line1-style @@ -54,7 +55,7 @@ #:line2-width Nonnegative-Real #:line2-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (lines-interval v1s v2s #:x-min [x-min #f] #:x-max [x-max #f] @@ -110,7 +111,7 @@ #:line2-width Nonnegative-Real #:line2-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (parametric-interval f1 f2 t-min t-max @@ -167,7 +168,7 @@ #:line2-width Nonnegative-Real #:line2-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (polar-interval f1 f2 [θ-min 0] [θ-max (* 2 pi)] @@ -216,7 +217,7 @@ Plot-Color Nonnegative-Real Plot-Pen-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((function-interval-render-proc f1 f2 samples color style line1-color line1-width line1-style @@ -249,7 +250,7 @@ #:line2-width Nonnegative-Real #:line2-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (function-interval f1 f2 [x-min #f] [x-max #f] @@ -297,7 +298,7 @@ Plot-Color Nonnegative-Real Plot-Pen-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((inverse-interval-render-proc f1 f2 samples color style line1-color line1-width line1-style @@ -330,7 +331,7 @@ #:line2-width Nonnegative-Real #:line2-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (inverse-interval f1 f2 [y-min #f] [y-max #f] diff --git a/plot-lib/plot/private/plot2d/line.rkt b/plot-lib/plot/private/plot2d/line.rkt index d92bb173..7bcb2251 100644 --- a/plot-lib/plot/private/plot2d/line.rkt +++ b/plot-lib/plot/private/plot2d/line.rkt @@ -4,6 +4,7 @@ (require typed/racket/class racket/match racket/math racket/list racket/sequence plot/utils + (only-in typed/pict pict) (only-in math/statistics stddev) "../common/type-doc.rkt" "../common/utils.rkt") @@ -16,7 +17,7 @@ (: lines-render-proc (-> (Listof (Vectorof Real)) Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((lines-render-proc vs color width style alpha label) area) (send area put-alpha alpha) @@ -34,7 +35,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (lines vs #:x-min [x-min #f] #:x-max [x-max #f] @@ -74,7 +75,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (parametric f t-min t-max #:x-min [x-min #f] #:x-max [x-max #f] @@ -114,7 +115,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (polar f [θ-min 0] [θ-max (* 2 pi)] #:x-min [x-min #f] #:x-max [x-max #f] @@ -153,7 +154,7 @@ Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((rule-render-proc v v-min v-max h/v color width style alpha label) area) (match-define (vector (ivl x-min x-max) (ivl y-min y-max)) (send area get-bounds-rect)) @@ -178,7 +179,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (vrule x [y-min #f] [y-max #f] #:color [color (line-color)] @@ -204,7 +205,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (hrule y [x-min #f] [x-max #f] #:color [color (line-color)] @@ -229,7 +230,7 @@ (: function-render-proc (-> Sampler Positive-Integer Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((function-render-proc f samples color width style alpha label) area) (match-define (vector x-ivl y-ivl) (send area get-bounds-rect)) @@ -251,7 +252,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (function f [x-min #f] [x-max #f] #:y-min [y-min #f] #:y-max [y-max #f] @@ -286,7 +287,7 @@ (: inverse-render-proc (-> Sampler Positive-Integer Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((inverse-render-proc f samples color width style alpha label) area) (match-define (vector x-ivl y-ivl) (send area get-bounds-rect)) @@ -308,7 +309,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (inverse f [y-min #f] [y-max #f] #:x-min [x-min #f] #:x-max [x-max #f] @@ -351,7 +352,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (density xs [bw-adjust 1] [orig-ws #f] #:x-min [x-min #f] #:x-max [x-max #f] diff --git a/plot-lib/plot/private/plot2d/point.rkt b/plot-lib/plot/private/plot2d/point.rkt index 1c481c9f..4c74fd89 100644 --- a/plot-lib/plot/private/plot2d/point.rkt +++ b/plot-lib/plot/private/plot2d/point.rkt @@ -3,6 +3,7 @@ ;; Renderers for points and other point-like things. (require typed/racket/class racket/match racket/math racket/list + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -22,7 +23,7 @@ (: points-render-fun (-> (Listof (Vectorof Real)) Point-Sym Plot-Color Plot-Color Nonnegative-Real Nonnegative-Real Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((points-render-fun vs sym color fill-color size line-width alpha label) area) (send area put-alpha alpha) @@ -44,7 +45,7 @@ #:size Nonnegative-Real #:line-width Nonnegative-Real #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (points vs #:x-min [x-min #f] #:x-max [x-max #f] @@ -93,7 +94,7 @@ Positive-Integer (U Real 'auto 'normalized) Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((vector-field-render-fun f samples scale color line-width line-style alpha label) area) (match-define (vector (ivl x-min x-max) (ivl y-min y-max)) (send area get-bounds-rect)) @@ -156,7 +157,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (vector-field f [x-min #f] [x-max #f] [y-min #f] [y-max #f] #:samples [samples (vector-field-samples)] diff --git a/plot-lib/plot/private/plot2d/rectangle.rkt b/plot-lib/plot/private/plot2d/rectangle.rkt index 6580f459..7e235a7b 100644 --- a/plot-lib/plot/private/plot2d/rectangle.rkt +++ b/plot-lib/plot/private/plot2d/rectangle.rkt @@ -1,6 +1,7 @@ #lang typed/racket/base (require racket/match typed/racket/class racket/list racket/sequence + (only-in typed/pict pict) (only-in racket/math infinite?) plot/utils "../common/type-doc.rkt" @@ -15,7 +16,7 @@ Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 2D-Render-Proc)) (define ((rectangles-render-proc rects color style line-color line-width line-style alpha label) area) @@ -44,7 +45,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (rectangles rects #:x-min [x-min #f] #:x-max [x-max #f] @@ -111,7 +112,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer2d)) (define (area-histogram f bin-bounds #:x-min [x-min #f] #:x-max [x-max #f] @@ -201,7 +202,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f) + #:label (U String pict #f) #:add-ticks? Boolean #:far-ticks? Boolean] renderer2d)) diff --git a/plot-lib/plot/private/plot3d/contour.rkt b/plot-lib/plot/private/plot3d/contour.rkt index 3f0808b1..d80ea120 100644 --- a/plot-lib/plot/private/plot3d/contour.rkt +++ b/plot-lib/plot/private/plot3d/contour.rkt @@ -1,6 +1,7 @@ #lang typed/racket/base (require typed/racket/class racket/match racket/list + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -13,7 +14,7 @@ (: isoline3d-render-proc (-> 2D-Sampler Real Positive-Integer Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U #f String) + (U String pict #f) 3D-Render-Proc)) (define ((isoline3d-render-proc f z samples color width style alpha label) area) (match-define (vector x-ivl y-ivl z-ivl) (send area get-bounds-rect)) @@ -43,7 +44,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (isoline3d f z [x-min #f] [x-max #f] @@ -86,7 +87,7 @@ (Pen-Widths (Listof Real)) (Plot-Pen-Styles (Listof Real)) (Alphas (Listof Real)) - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((contours3d-render-proc f levels samples colors widths styles alphas label) area) (match-define (vector x-ivl y-ivl z-ivl) (send area get-bounds-rect)) @@ -136,7 +137,7 @@ #:widths (Pen-Widths (Listof Real)) #:styles (Plot-Pen-Styles (Listof Real)) #:alphas (Alphas (Listof Real)) - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (contours3d f [x-min #f] [x-max #f] @@ -182,7 +183,7 @@ (Pen-Widths (Listof Real)) (Plot-Pen-Styles (Listof Real)) (Alphas (Listof ivl)) - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((contour-intervals3d-render-proc f levels samples colors styles line-colors line-widths line-styles @@ -278,7 +279,7 @@ #:contour-widths (Pen-Widths (Listof Real)) #:contour-styles (Plot-Pen-Styles (Listof Real)) #:alphas (Alphas (Listof ivl)) - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (contour-intervals3d f [x-min #f] [x-max #f] diff --git a/plot-lib/plot/private/plot3d/isosurface.rkt b/plot-lib/plot/private/plot3d/isosurface.rkt index ed4e1157..32d7a94d 100644 --- a/plot-lib/plot/private/plot3d/isosurface.rkt +++ b/plot-lib/plot/private/plot3d/isosurface.rkt @@ -1,6 +1,7 @@ #lang typed/racket/base (require typed/racket/class racket/match racket/list math/flonum racket/math + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -14,7 +15,7 @@ Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((isosurface3d-render-proc f d samples color style line-color line-width line-style alpha label) @@ -51,7 +52,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (isosurface3d f d [x-min #f] [x-max #f] [y-min #f] [y-max #f] [z-min #f] [z-max #f] #:samples [samples (plot3d-samples)] @@ -92,7 +93,7 @@ (Plot-Colors (Listof Real)) (Plot-Brush-Styles (Listof Real)) (Plot-Colors (Listof Real)) (Pen-Widths (Listof Real)) (Plot-Pen-Styles (Listof Real)) (Alphas (Listof Real)) - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((isosurfaces3d-render-proc f rd-min rd-max levels samples colors styles line-colors line-widths line-styles alphas label) @@ -155,7 +156,7 @@ #:line-widths (Pen-Widths (Listof Real)) #:line-styles (Plot-Pen-Styles (Listof Real)) #:alphas (Alphas (Listof Real)) - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (isosurfaces3d f [x-min #f] [x-max #f] [y-min #f] [y-max #f] [z-min #f] [z-max #f] #:d-min [d-min #f] #:d-max [d-max #f] @@ -196,7 +197,7 @@ Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((polar3d-render-proc f g samples color style line-color line-width line-style alpha label) area) @@ -268,7 +269,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (polar3d f #:x-min [x-min #f] #:x-max [x-max #f] diff --git a/plot-lib/plot/private/plot3d/line.rkt b/plot-lib/plot/private/plot3d/line.rkt index 04ad85ac..7ea0eefa 100644 --- a/plot-lib/plot/private/plot3d/line.rkt +++ b/plot-lib/plot/private/plot3d/line.rkt @@ -1,6 +1,7 @@ #lang typed/racket/base (require typed/racket/class racket/match racket/list + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -12,7 +13,7 @@ (: lines3d-render-proc (-> (-> (Listof (Vectorof Real))) Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((lines3d-render-proc vs-fun color width style alpha label) area) (send area put-alpha alpha) @@ -26,7 +27,7 @@ (U #f Real) (U #f Real) (U #f Real) (U #f Real) (U #f Real) (U #f Real) Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) renderer3d)) (define (lines3d-renderer vs-thnk x-min x-max y-min y-max z-min z-max color width style alpha label) @@ -57,7 +58,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (lines3d vs #:x-min [x-min #f] #:x-max [x-max #f] @@ -95,7 +96,7 @@ #:width Nonnegative-Real #:style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (parametric3d f t-min t-max #:x-min [x-min #f] #:x-max [x-max #f] diff --git a/plot-lib/plot/private/plot3d/param-surf.rkt b/plot-lib/plot/private/plot3d/param-surf.rkt index 6b6f7683..8867f73f 100644 --- a/plot-lib/plot/private/plot3d/param-surf.rkt +++ b/plot-lib/plot/private/plot3d/param-surf.rkt @@ -1,6 +1,7 @@ #lang typed/racket/base (require typed/racket/class racket/match racket/list + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -12,7 +13,7 @@ Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U #f String) + (U String pict #f) 3D-Render-Proc)) (define ((polygons3d-render-proc vs-fun color style line-color line-width line-style alpha label) area) @@ -30,7 +31,7 @@ Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U #f String) + (U String pict #f) renderer3d)) (define (polygons3d-renderer vs-thnk x-min x-max y-min y-max z-min z-max color style line-color line-width line-style alpha label) @@ -65,7 +66,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U #f String)] + #:label (U String pict #f)] renderer3d)) (define (polygons3d vs #:x-min [x-min #f] #:x-max [x-max #f] @@ -109,7 +110,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U #f String)] + #:label (U String pict #f)] renderer3d)) (define (parametric-surface3d f s-min s-max t-min t-max #:x-min [x-min #f] #:x-max [x-max #f] diff --git a/plot-lib/plot/private/plot3d/point.rkt b/plot-lib/plot/private/plot3d/point.rkt index 53af4957..17e3834b 100644 --- a/plot-lib/plot/private/plot3d/point.rkt +++ b/plot-lib/plot/private/plot3d/point.rkt @@ -1,6 +1,7 @@ #lang typed/racket/base (require typed/racket/class racket/list racket/match + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -20,7 +21,7 @@ Plot-Color Plot-Color Nonnegative-Real Nonnegative-Real Nonnegative-Real - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((points3d-render-proc vs sym color fill-color size line-width alpha label) area) (send area put-alpha alpha) @@ -45,7 +46,7 @@ #:size Nonnegative-Real #:line-width Nonnegative-Real #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (points3d vs #:x-min [x-min #f] #:x-max [x-max #f] @@ -105,7 +106,7 @@ Positive-Integer (U Real 'auto 'normalized) Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((vector-field3d-render-fun f samples scale color line-width line-style alpha label) area) (match-define (vector (ivl x-min x-max) (ivl y-min y-max) (ivl z-min z-max)) @@ -171,7 +172,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (vector-field3d f [x-min #f] [x-max #f] [y-min #f] [y-max #f] [z-min #f] [z-max #f] #:samples [samples (vector-field3d-samples)] diff --git a/plot-lib/plot/private/plot3d/rectangle.rkt b/plot-lib/plot/private/plot3d/rectangle.rkt index 215af340..282146fe 100644 --- a/plot-lib/plot/private/plot3d/rectangle.rkt +++ b/plot-lib/plot/private/plot3d/rectangle.rkt @@ -1,6 +1,7 @@ #lang typed/racket/base (require racket/match racket/list typed/racket/class racket/sequence + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -14,7 +15,7 @@ Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U String #f) + (U String pict #f) 3D-Render-Proc)) (define ((rectangles3d-render-proc rects color style line-color line-width line-style alpha label) area) @@ -38,7 +39,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f)] + #:label (U String pict #f)] renderer3d)) (define (rectangles3d rects #:x-min [x-min #f] #:x-max [x-max #f] @@ -132,7 +133,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U String #f) + #:label (U String pict #f) #:add-x-ticks? Boolean #:add-y-ticks? Boolean #:x-far-ticks? Boolean diff --git a/plot-lib/plot/private/plot3d/surface.rkt b/plot-lib/plot/private/plot3d/surface.rkt index 1a1f4d29..727af46e 100644 --- a/plot-lib/plot/private/plot3d/surface.rkt +++ b/plot-lib/plot/private/plot3d/surface.rkt @@ -1,6 +1,7 @@ #lang typed/racket/base (require typed/racket/class racket/match racket/list + (only-in typed/pict pict) plot/utils "../common/type-doc.rkt" "../common/utils.rkt") @@ -14,7 +15,7 @@ Plot-Color Plot-Brush-Style Plot-Color Nonnegative-Real Plot-Pen-Style Nonnegative-Real - (U #f String) + (U String pict #f) 3D-Render-Proc)) (define ((surface3d-render-proc f samples color style line-color line-width line-style alpha label) area) @@ -44,7 +45,7 @@ #:line-width Nonnegative-Real #:line-style Plot-Pen-Style #:alpha Nonnegative-Real - #:label (U #f String)] + #:label (U String pict #f)] renderer3d)) (define (surface3d f [x-min #f] [x-max #f] [y-min #f] [y-max #f] #:z-min [z-min #f] #:z-max [z-max #f] #:samples [samples (plot3d-samples)] diff --git a/plot-test/plot/tests/PRs/58.rkt b/plot-test/plot/tests/PRs/58.rkt new file mode 100644 index 00000000..50ad5968 --- /dev/null +++ b/plot-test/plot/tests/PRs/58.rkt @@ -0,0 +1,73 @@ +#lang racket +(require rackunit + plot + pict + racket/draw + racket/runtime-path + "../helpers.rkt") + +;; Tests for https://github.com/racket/plot/issues/58 + +;; Setup a draw context used for font metrics by the picts used in these tests +;; -- this will ensure that tests produce identical data sets on all +;; platforms. Note that this line will make the pict look unaligned -- remove +;; this line to restore "normal" behavior. + +(dc-for-text-size (new mock-record-dc%)) + +(define (do-plot-2d output-fn) + (output-fn + (list + (lines '([10 1] [20 1.5] [30 1.7]) + #:color "DarkOrange" + #:width 3 + #:label (vc-append (standard-fish 35 25 #:color "DarkOrange") (text "One Fish"))) + (points '([10 1.2] [15 1.0] [20 0.9] [25 0.7] [30 0.4]) + #:color "forestgreen" + #:fill-color "medium forest green" + #:line-width 3 + #:sym 'fullcircle1 + #:size 20 + #:label (vc-append (hc-append + (standard-fish 25 15 #:color "forestgreen") + (standard-fish 25 15 #:color "medium forest green")) + (text "Two Fish"))) + (lines '([10 .5] [20 1.6] [30 1.0]) + #:color "firebrick" + #:width 3 + #:label (vc-append (standard-fish 50 30 #:color "firebrick") + (text "Red Fish"))) + (function sin 10 30 + #:color "steel blue" + #:width 3 + #:label (vc-append (standard-fish 30 50 #:color "steel blue") + (text "Blue Fish"))) + + ))) + +(define (do-plot-3d output-fn) + (output-fn + (surface3d (λ (x y) (+ (/ 1.0 x)) + (/ 1.0 y)) + -2 2 -2 2 + #:color '(255 128 128) + #:line-color '(255 128 128) + #:line-width 1.5 + #:label (standard-fish 50 30)))) + +(define-runtime-path pr58-2d "./test-data/pr58-2d.dat") +(define-runtime-path pr58-3d "./test-data/pr58-3d.dat") + +(define pr58-test-suite + (test-suite + "PR#58: add support for pict legend entries" + (test-case "pr58 2d plots" + (check-draw-steps do-plot-2d pr58-2d)) + (test-case "pr58 3d plots" + (check-draw-steps-3d do-plot-3d pr58-3d)))) + +(module+ test + (require rackunit/text-ui) + (run-tests pr58-test-suite)) + + diff --git a/plot-test/plot/tests/PRs/test-data/pr58-2d.dat b/plot-test/plot/tests/PRs/test-data/pr58-2d.dat new file mode 100644 index 0000000000000000000000000000000000000000..69a054bbe299dcdf581cbb029c60def62f71f3e5 GIT binary patch literal 13628 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 O;{OAe)hsbt@BjeRZr29@ literal 0 HcmV?d00001 diff --git a/plot-test/plot/tests/PRs/test-data/pr58-2d.png b/plot-test/plot/tests/PRs/test-data/pr58-2d.png new file mode 100644 index 0000000000000000000000000000000000000000..333f14b660006242336f6b1c781ec603ad952282 GIT binary patch literal 74959 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%0A{^+C=g|)kx&&dSR0p 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 P0?7HWE9U8;b2tA5)49{K literal 0 HcmV?d00001 diff --git a/plot-test/plot/tests/PRs/test-data/pr58-3d.dat b/plot-test/plot/tests/PRs/test-data/pr58-3d.dat new file mode 100644 index 0000000000000000000000000000000000000000..2aa426e52ae2b6973e55dd462c27d04187b61e14 GIT binary patch literal 62082 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 t!1q-juL34haHZ*VGI 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 M2QGvU6NnK11(A$+VgLXD literal 0 HcmV?d00001 diff --git a/plot-test/plot/tests/PRs/test-data/pr58-3d.png b/plot-test/plot/tests/PRs/test-data/pr58-3d.png new file mode 100644 index 0000000000000000000000000000000000000000..a3ff3716400be1e73347477f2542637d81a30772 GIT binary patch literal 78812 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

0Km9 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

  • 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%0Axa+6hrs2=Yy&|vsG+JXHi}f!6 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 literal 0 HcmV?d00001 diff --git a/plot-test/plot/tests/helpers.rkt b/plot-test/plot/tests/helpers.rkt index f00f36aa..2917f7d2 100644 --- a/plot-test/plot/tests/helpers.rkt +++ b/plot-test/plot/tests/helpers.rkt @@ -1,7 +1,7 @@ #lang racket (require plot racket/draw rackunit file/gzip file/gunzip) -(provide check-draw-steps check-draw-steps-3d) +(provide check-draw-steps check-draw-steps-3d mock-record-dc%) ;; Helper functions to write plot tests which verify that the renderers work ;; correctly. See `check-draw-steps` and `check-draw-steps-3d`. From 661e1e0fe3bbf44cdf980fa43544d8b03198bc67 Mon Sep 17 00:00:00 2001 From: Alex Harsanyi Date: Fri, 14 Aug 2020 14:24:44 +0800 Subject: [PATCH 2/4] Remove current from the build --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1211b5c0..2576a75a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - racket-version: ["7.8", "current"] + racket-version: ["7.8"] racket-variant: ["regular", "CS"] steps: - uses: actions/checkout@v2 From dbf0693ed11c0fd1b2efbda8bf7efb3344d17dd8 Mon Sep 17 00:00:00 2001 From: Alex Harsanyi Date: Fri, 14 Aug 2020 17:44:18 +0800 Subject: [PATCH 3/4] try current again --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2576a75a..9c230963 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,11 +6,11 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - racket-version: ["7.8"] + racket-version: ["7.8", "current"] racket-variant: ["regular", "CS"] steps: - uses: actions/checkout@v2 - - uses: Bogdanp/setup-racket@v0.8 + - uses: Bogdanp/setup-racket@v0.10 with: architecture: x64 distribution: minimal From 5402733108e67733ea6321cfa9c484ce7a75077a Mon Sep 17 00:00:00 2001 From: Alex Harsanyi Date: Sat, 15 Aug 2020 07:58:46 +0800 Subject: [PATCH 4/4] add history tags --- plot-doc/plot/scribblings/renderer2d.scrbl | 44 +++++++++++++++++++++- plot-doc/plot/scribblings/renderer3d.scrbl | 30 +++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/plot-doc/plot/scribblings/renderer2d.scrbl b/plot-doc/plot/scribblings/renderer2d.scrbl index 386fbed6..b03d7578 100644 --- a/plot-doc/plot/scribblings/renderer2d.scrbl +++ b/plot-doc/plot/scribblings/renderer2d.scrbl @@ -47,6 +47,8 @@ using Unicode characters, and thus some mathematical notation. For more complex cases, a @(racket pict) can be used, whic allows arbitrary text and graphics to be used as label entries. +@history[#:changed "7.9" "Added support for pictures for #:label"] + Not every renderer-producing function has a @(racket #:label) argument; for example, @(racket error-bars). @@ -120,6 +122,8 @@ For example: @item{To see the distribution of 1-dimensional data; as a substitute for box or violin plots.} @item{To anonymize spatial data, showing i.e. an office's neighborhood but hiding its address.} ] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(vector-field @@ -145,6 +149,8 @@ An example of automatic scaling: @interaction[#:eval plot-eval (plot (vector-field (λ (x y) (vector (+ x y) (- x y))) -2 2 -2 2))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(error-bars @@ -206,6 +212,8 @@ fourth, and fifth elements in each vector comprise the open, high, low, and clos ) renderer2d?]{ Returns a renderer that plots a function of @italic{x}. For example, a parabola: @interaction[#:eval plot-eval (plot (function sqr -2 2))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(inverse [f (real? . -> . real?)] @@ -225,6 +233,8 @@ For example, a parabola, an inverse parabola, and the reflection line: (function sqr -2 2 #:label "y = x²") (function (λ (x) x) #:color 0 #:style 'dot #:label "y = x") (inverse sqr -2 2 #:color 3 #:label "x = y²")))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(lines [vs (sequence/c (sequence/c #:min-count 2 real?))] @@ -247,6 +257,8 @@ This is directly useful for plotting a time series, such as a random walk: #:color 6 #:label "Random walk"))] The @(racket parametric) and @(racket polar) functions are defined using @(racket lines). + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(parametric [f (real? . -> . (sequence/c real?))] @@ -263,7 +275,9 @@ The @(racket parametric) and @(racket polar) functions are defined using @(racke Returns a renderer that plots vector-valued functions of time. For example, the circle as a function of time can be plotted using @interaction[#:eval plot-eval - (plot (parametric (λ (t) (vector (cos t) (sin t))) 0 (* 2 pi)))] + (plot (parametric (λ (t) (vector (cos t) (sin t))) 0 (* 2 pi)))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(polar [f (real? . -> . real?)] @@ -282,6 +296,8 @@ Note that the angle parameters @(racket θ-min) and @(racket θ-max) default to For example, drawing a full circle: @interaction[#:eval plot-eval (plot (polar (λ (θ) 1)))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(density [xs (sequence/c real?)] @@ -310,6 +326,8 @@ For example, to plot an estimated density of the triangle distribution: 2000 (λ (n) (- (+ (random) (random)) 1))) #:color 0 #:width 2 #:style 'dot #:label "Est. density")))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(hrule [y real?] @@ -322,6 +340,8 @@ For example, to plot an estimated density of the triangle distribution: ) renderer2d?]{ Draws a horizontal line at @italic{y}. By default, the line spans the entire plot area width. + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(vrule [x real?] @@ -334,6 +354,8 @@ By default, the line spans the entire plot area width. ) renderer2d?]{ Draws a vertical line at @italic{x}. By default, the line spans the entire plot area height. + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @section{2D Interval Renderers} @@ -360,6 +382,8 @@ Corresponds with @(racket function). @interaction[#:eval plot-eval (plot (function-interval (λ (x) 0) (λ (x) (exp (* -1/2 (sqr x)))) -4 4 #:line1-style 'transparent))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(inverse-interval @@ -382,6 +406,8 @@ Corresponds with @(racket inverse). @interaction[#:eval plot-eval (plot (inverse-interval sin (λ (x) 0) (- pi) pi #:line2-style 'long-dash))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(lines-interval @@ -408,6 +434,8 @@ Corresponds with @(racket lines). (lines-interval (list #(0 0) #(1 1/2)) (list #(0 1) #(1 3/2)) #:color 4 #:line1-color 4 #:line2-color 4 #:label "Parallelogram")))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(parametric-interval @@ -436,6 +464,8 @@ Corresponds with @(racket parametric). (define (f2 t) (vector (* 1/2 (cos t)) (* 1/2 (sin t)))) (plot (parametric-interval f1 f2 (- pi) pi))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(polar-interval @@ -462,6 +492,8 @@ Corresponds with @(racket polar). (define (f2 θ) (+ 1 (* 1/4 (cos (* 10 θ))))) (plot (list (polar-axes #:number 10) (polar-interval f1 f2 #:label "[f1,f2]")))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @section{2D Contour (Isoline) Renderers} @@ -481,6 +513,8 @@ Returns a renderer that plots a contour line, or a line of constant value (heigh A circle of radius @(racket r), for example, is the line of constant value @(racket r) for the distance function: @interaction[#:eval plot-eval (plot (isoline (λ (x y) (sqrt (+ (sqr x) (sqr y)))) 1.5 -2 2 -2 2 #:label "z"))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } In this case, @(racket r) = @(racket 1.5). @@ -519,6 +553,8 @@ For example, #:colors '("blue" "red") #:widths '(4 1) #:styles '(solid dot)))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(contour-intervals @@ -543,6 +579,8 @@ For example, the canonical saddle, with its gradient field superimposed: -2 2 -2 2 #:label "z") (vector-field (λ (x y) (vector (* 2 x) (* -2 y))) #:color "black" #:label "Gradient")))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @section{2D Rectangle Renderers} @@ -569,6 +607,8 @@ edge of the plot area in the respective direction. For example, @interaction[#:eval plot-eval (plot (rectangles (list (vector (ivl -1 0) (ivl -1 1)) (vector (ivl 0 2) (ivl 1 2)))))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(area-histogram @@ -649,6 +689,8 @@ For example, #:x-label "Breakfast Food" #:y-label "Cooking Time (minutes)" #:title "Cooking Times For Breakfast Food, Per Processor")] When interleaving many histograms, consider setting the @racket[discrete-histogram-skip] parameter to change @racket[skip]'s default value. + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(stacked-histogram diff --git a/plot-doc/plot/scribblings/renderer3d.scrbl b/plot-doc/plot/scribblings/renderer3d.scrbl index 44e50cad..c78de086 100644 --- a/plot-doc/plot/scribblings/renderer3d.scrbl +++ b/plot-doc/plot/scribblings/renderer3d.scrbl @@ -62,6 +62,8 @@ negative direction, so total spread along e.g. the x-axis is twice @racket[x-jit Note that adding random noise to data, via jittering or otherwise, is usually a bad idea. See the documentation for @racket[points] for examples where jittering may be appropriate. + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(vector-field3d @@ -83,6 +85,8 @@ The arguments are interpreted identically to the corresponding arguments to @rac @examples[#:eval plot-eval (plot3d (vector-field3d (λ (x y z) (vector x z y)) -2 2 -2 2 -2 2))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @section{3D Line Renderers} @@ -100,6 +104,8 @@ The arguments are interpreted identically to the corresponding arguments to @rac ) renderer3d?]{ Returns a renderer that draws connected lines. The @racket[parametric3d] function is defined in terms of this one. + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(parametric3d @@ -121,6 +127,8 @@ Returns a renderer that plots a vector-valued function of time. For example, (plot3d (parametric3d (λ (t) (3d-polar->3d-cartesian (* t 80) t 1)) (- pi) pi #:samples 3000 #:alpha 0.5) #:altitude 25)] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @section{3D Surface Renderers} @@ -145,6 +153,8 @@ Returns a renderer that plots a two-input, one-output function. For example, (surface3d (λ (x y) (- (+ (sqr x) (sqr y)))) -1 1 -1 1 #:color 4 #:line-color 4 #:label "z = -x² - y²")))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(polar3d @@ -181,6 +191,8 @@ Combining polar function renderers allows faking latitudes or longitudes in larg #:line-style 'transparent #:alpha 2/3) (polar3d f2 #:color "navajowhite" #:line-style 'transparent #:alpha 2/3))))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(parametric-surface3d @@ -225,6 +237,8 @@ For example, #:label "torus2")) #:z-min -6 #:z-max 6 #:altitude 22)] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(polygons3d @@ -248,6 +262,8 @@ The @racket[parametric-surface3d] function is defined in terms of this one. (list (list 1 0 0)(list 0 1 0)(list 0 0 0)))) #:angle 355 #:altitude 30)] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @section{3D Contour (Isoline) Renderers} @@ -273,6 +289,8 @@ This function is not terribly useful by itself, but can be when combined with ot (define (saddle x y) (- (sqr x) (sqr y))) (plot3d (list (surface3d saddle -1 1 -1 1) (isoline3d saddle 1/4 #:width 2 #:style 'long-dash)))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(contours3d @@ -296,6 +314,8 @@ In particular, when @(racket levels) is @(racket 'auto), contour values correspo For example, @interaction[#:eval plot-eval (plot3d (contours3d (λ (x y) (+ (sqr x) (sqr y))) -1.1 1.1 -1.1 1.1 #:label "z = x² + y²"))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(contour-intervals3d @@ -323,6 +343,8 @@ For example, @interaction[#:eval plot-eval (plot3d (contour-intervals3d (λ (x y) (+ (sqr x) (sqr y))) -1.1 1.1 -1.1 1.1 #:label "z = x² + y²"))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @section{3D Isosurface Renderers} @@ -348,6 +370,8 @@ For example, a sphere is all the points in which the Euclidean distance function (λ (x y z) (sqrt (+ (sqr x) (sqr y) (sqr z)))) 1 -1 1 -1 1 -1 1) #:altitude 25)] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(isosurfaces3d @@ -377,6 +401,8 @@ Use this to visualize functions from three inputs to one output; for example: #:z-min -2 #:z-max 2)] If it helps, think of the output of @(racket f) as a density or charge. + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @section{3D Rectangle Renderers} @@ -415,6 +441,8 @@ This can be used to draw histograms; for example, (vector x-ivl y-ivl (ivl 0 z))))) #:alpha 3/4 #:label "Appx. 2D Normal"))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(discrete-histogram3d @@ -443,6 +471,8 @@ Missing pairs are not drawn; for example, (plot3d (discrete-histogram3d '(#(a a 1) #(a b 2) #(b b 3)) #:label "Missing (b,a)" #:color 4 #:line-color 4))] + +@history[#:changed "7.9" "Added support for pictures for #:label"] } @defproc[(stacked-histogram3d