PLoT: Graph Plotting

Neil Toronto <neil.toronto@gmail.com>

 (require plot)

Typed Racket users should use

 (require plot/typed)

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 (Isoline) 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 (Isoline) Renderers

      5.6 3D Isosurface Renderers

      5.7 3D Rectangle Renderers

    6 Nonrenderers

    7 Axis Transforms and Ticks

      7.1 Axis Transforms

      7.2 Axis Ticks

        7.2.1 Linear Ticks

        7.2.2 Log Ticks

        7.2.3 Date Ticks

        7.2.4 Time Ticks

        7.2.5 Currency Ticks

        7.2.6 Other Ticks

        7.2.7 Tick Combinators

        7.2.8 Tick Data Types and Contracts

      7.3 Invertible Functions

    8 Plot Utilities

      8.1 Formatting

      8.2 Sampling

      8.3 Plot Colors and Styles

      8.4 Plot-Specific Math

        8.4.1 Real Functions

        8.4.2 Vector Functions

        8.4.3 Intervals and Interval Functions

      8.5 Dates and Times

    9 Plot and Renderer Parameters

      9.1 Compatibility

      9.2 Output

      9.3 General Appearance

      9.4 Lines

      9.5 Intervals

      9.6 Points

      9.7 Vector Fields

      9.8 Error Bars

      9.9 Contours and Contour Intervals

      9.10 Rectangles

      9.11 Decorations

      9.12 3D General Appearance

      9.13 Surfaces

      9.14 Contour Surfaces

      9.15 Isosurfaces

    10 Plot Contracts

      10.1 Plot Element Contracts

      10.2 Appearance Argument Contracts

      10.3 Appearance Argument List Contracts

    11 Porting From PLoT <= 5.1.3

      11.1 Replacing Deprecated Functions

      11.2 Ensuring That Plots Have Bounds

      11.3 Changing Keyword Arguments

      11.4 Fixing Broken Calls to points

      11.5 Replacing Uses of plot-extend

      11.6 Deprecated Functions

    12 Compatibility Module

      12.1 Plotting

      12.2 Miscellaneous Functions