2 2D Plot Procedures

▼ |  | PLo T: Graph Plotting

1 | Introduction
2 | 2D Plot Procedures
3 | 2D Renderers
4 | 3D Plot Procedures
5 | 3D Renderers
6 | Nonrenderers
7 | Axis Transforms and Ticks
8 | Plot Utilities
9 | Plot and Renderer Parameters
10 | Plot Contracts
11 | Porting From PLo T <= 5.1.3
12 | Compatibility Module

On this page:

plot
plot-file
plot-pict
plot-bitmap
plot-snip
plot-frame
plot/ dc

5.3.6
top ← prev up next →

### 2`` 2D Plot Procedures

> > procedure
> > (plot |  | renderer-tree |
> > | [ | #:x-min x-min |
> > |  | #:x-max x-max |
> > |  | #:y-min y-min |
> > |  | #:y-max y-max |
> > |  | #:width width |
> > |  | #:height height |
> > |  | #:title title |
> > |  | #:x-label x-label |
> > |  | #:y-label y-label |
> > |  | #:legend-anchor legend-anchor |
> > |  | #:out-file out-file |
> > |  | #:out-kind out-kind]) |
> → (or/c (is-a?/c image-snip%) void?)
> renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
> x-min : (or/c rational? #f) = #f
> x-max : (or/c rational? #f) = #f
> y-min : (or/c rational? #f) = #f
> y-max : (or/c rational? #f) = #f
> width : exact-positive-integer? = (plot-width)
> height : exact-positive-integer? = (plot-height)
> title : (or/c string? #f) = (plot-title)
> x-label : (or/c string? #f) = (plot-x-label)
> y-label : (or/c string? #f) = (plot-y-label)
> legend-anchor : anchor/c = (plot-legend-anchor)
> out-file : (or/c path-string? output-port? #f) = #f
> | out-kind |  | : |  | (one-of/c 'auto 'png 'jpeg 'xmb 'xpm 'bmp 'ps 'pdf 'svg)
> |  |  | = |  | 'auto

Plots a 2D renderer or list of renderers (or more generally, a tree of renderers), as returned by points, function, contours, discrete-histogram, and others.

By default, plot produces a Racket value that is displayed as an image and can be manipulated like any other value. For example, they may be put in lists:

> > (parameterize ([plot-width 150]
> [plot-height 150]
> [plot-x-label #f]
> [plot-y-label #f])
> (list (plot (function sin (- pi) pi))
> (plot (function sqr -2 2))))
> '( )

When the parameter plot-new-window? is #t, plot opens a new window to display the plot and returns (void).

When #:out-file is given, plot writes the plot to a file using plot-file as well as returning an image-snip% or opening a new window.

When given, the x-min, x-max, y-min and y-max arguments determine the bounds of the plot, but not the bounds of the renderers. For example,

> > (plot (function (λ (x) (sin (* 4 x))) -1 1)
> #:x-min -1.5 #:x-max 1.5 #:y-min -1.5 #:y-max 1.5)

Here, the renderer draws in [-1,1] × [-1,1], but the plot area is [-1.5,1.5] × [-1.5,1.5].

Deprecated keywords. The #:fgcolor and #:bgcolor keyword arguments are currently supported for backward compatibility, but may not be in the future. Please set the plot-foreground and plot-background parameters instead of using these keyword arguments. The #:lncolor keyword argument is also accepted for backward compatibility but deprecated. It does nothing.

> > procedure
> > (plot-file |  | renderer-tree |  |  |  |
> > |  | output |  |  |  |
> > | [ | kind] |  |  |  |
> > |  | #:<plot-keyword> <plot-keyword> ...) |  | → |  | void?
> renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
> output : (or/c path-string? output-port?)
> | kind |  | : |  | (one-of/c 'auto 'png 'jpeg 'xmb 'xpm 'bmp 'ps 'pdf 'svg)
> |  |  | = |  | 'auto
> <plot-keyword> : <plot-keyword-contract>
> procedure (plot-pict renderer-tree ...) → pict?
> renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
> procedure (plot-bitmap renderer-tree ...) → (is-a?/c bitmap%)
> renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
> procedure (plot-snip renderer-tree ...) → (is-a?/c image-snip%)
> renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
> procedure (plot-frame renderer-tree ...) → (is-a?/c frame%)
> renderer-tree : (treeof (or/c renderer2d? nonrenderer?))

Plot to different backends. Each of these procedures has the same keyword arguments as plot, except for deprecated keywords.

Use plot-file to save a plot to a file. When creating a JPEG file, the parameter plot-jpeg-quality determines its quality. When creating a PostScript or PDF file, the parameter plot-ps/pdf-interactive? determines whether the user is given a dialog for setting printing parameters. (See post-script-dc% and pdf-dc%.) When kind is 'auto, plot-file tries to determine the kind of file to write from the file name extension.

Use plot-pict to plot to a slideshow pict. For example,

> #lang slideshow
> (require plot)
> (plot-font-size (current-font-size))
> (plot-width (current-para-width))
> (plot-height 600)
> (plot-background-alpha 1/2)
> (slide
> #:title "A 2D Parabola"
> (plot-pict (function sqr -1 1 #:label "y = x^2")))

creates a slide containing a 2D plot of a parabola.

Use plot-bitmap to create a bitmap%.

Use plot-frame to create a frame% regardless of the value of plot-new-window?. The frame is initially hidden.

Use plot-snip to create an interactive image-snip% regardless of the value of plot-new-window?.

> > procedure
> > (plot/dc |  | renderer-tree |  |  |  |
> > |  | dc |  |  |  |
> > |  | x |  |  |  |
> > |  | y |  |  |  |
> > |  | width |  |  |  |
> > |  | height |  |  |  |
> > | [ | #:x-min x-min |  |  |  |
> > |  | #:x-max x-max |  |  |  |
> > |  | #:y-min y-min |  |  |  |
> > |  | #:y-max y-max |  |  |  |
> > |  | #:title title |  |  |  |
> > |  | #:x-label x-label |  |  |  |
> > |  | #:y-label y-label |  |  |  |
> > |  | #:legend-anchor legend-anchor]) |  | → |  | void?
> renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
> dc : (is-a?/c dc<%>)
> x : real?
> y : real?
> width : (>=/c 0)
> height : (>=/c 0)
> x-min : (or/c rational? #f) = #f
> x-max : (or/c rational? #f) = #f
> y-min : (or/c rational? #f) = #f
> y-max : (or/c rational? #f) = #f
> title : (or/c string? #f) = (plot-title)
> x-label : (or/c string? #f) = (plot-x-label)
> y-label : (or/c string? #f) = (plot-y-label)
> legend-anchor : anchor/c = (plot-legend-anchor)

Plots to an arbitrary device context, in the rectangle with width width, height height, and upper-left corner x,y.

Every 2D Plot Procedures procedure is defined in terms of plot/dc.

Use this if you need to continually update a plot on a canvas%, or to create other plot-like functions with different backends.

top ← prev up next →