Version: 5.2

PLoT: Graph Plotting

Neil Toronto <>

 (require plot)

PLoT provides a flexible interface for producing nearly any kind of plot. It includes many common kinds already, such as scatter plots, line plots, contour plots, histograms, and 3D surfaces and isosurfaces. Thanks to Racket’s excellent multiple-backend drawing library, PLoT can render plots as manipulatable images in DrRacket, as bitmaps in slideshows, as PNG, PDF, PS and SVG files, or on any device context.

A note on backward compatibility. PLoT has undergone a major rewrite between versions 5.1.3 and 5.2. Many programs written using PLoT 5.1.3 and earlier will still compile, run and generate plots. Some programs will not. Most programs use deprecated functions such as mix, line and surface. These functions still exist for backward compatibility, but are deprecated and may be removed in the future. If you have code written for PLoT 5.1.3 or earlier, please see Porting From PLoT <= 5.1.3 (and possibly Compatibility Module).

    1 Introduction

      1.1 Plotting 2D Graphs

      1.2 Terminology

      1.3 Plotting 3D Graphs

      1.4 Plotting Multiple 2D Renderers

      1.5 Renderer and Plot Bounds

      1.6 Plotting Multiple 3D Renderers

      1.7 Plotting to Files

      1.8 Colors and Styles

    2 2D Plot Procedures

    3 2D Renderers

      3.1 2D Renderer Function Arguments

      3.2 2D Point Renderers

      3.3 2D Line Renderers

      3.4 2D Interval Renderers

      3.5 2D Contour Renderers

      3.6 2D Rectangle Renderers

      3.7 2D Plot Decoration Renderers

    4 3D Plot Procedures

    5 3D Renderers

      5.1 3D Renderer Function Arguments

      5.2 3D Point Renderers

      5.3 3D Line Renderers

      5.4 3D Surface Renderers

      5.5 3D Contour Renderers

      5.6 3D Isosurface Renderers

      5.7 3D Rectangle Renderers

    6 Plot Utilities

    7 Plot and Renderer Parameters

      7.1 Compatibility

      7.2 Output

      7.3 Axis Transforms

      7.4 General Appearance

      7.5 Lines

      7.6 Intervals

      7.7 Points

      7.8 Vector Fields

      7.9 Error Bars

      7.10 Contours and Contour Intervals

      7.11 Rectangles

      7.12 Decorations

      7.13 3D General Appearance

      7.14 Surfaces

      7.15 Contour Surfaces

      7.16 Isosurfaces

    8 Plot Contracts

      8.1 Convenience Contracts

      8.2 Appearance Argument Contracts

      8.3 Appearance Argument Sequence Contracts

    9 Making Custom Plot Renderers

    10 Porting From PLoT <= 5.1.3

      10.1 Replacing Deprecated Functions

      10.2 Ensuring That Plots Have Bounds

      10.3 Changing Keyword Arguments

      10.4 Fixing Broken Calls to points

      10.5 Replacing Uses of plot-extend

      10.6 Deprecated Functions

    11 Compatibility Module

      11.1 Plotting

      11.2 Curve Fitting

      11.3 Miscellaneous Functions

    12 To Do