Sample Graphics Programs

**GRAPHICS_EXAMPLES**,
Python programs which
illustrate how various kinds of data can be displayed and analyzed graphically.

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

**GRAPHICS_EXAMPLES** programs are available in
a C version and
a C++ version and
a dataset version and
a FORTRAN90 version and
a MATLAB version and
a Python version.

DRUG_DOSAGE, a Python program which simulates the variation in the blood levels of a medicinal drug being administered at specific dosages and times over a course of treatment. The level should rise about a given medicinal level for some time, but stay below the toxic level.

GRAPHICS_EXAMPLES_CONVERT, examples which illustrate how various kinds of data can be processed and modified using the ImageMagick program convert() and its related tools.

GRAPHICS_EXAMPLES_GNUPLOT, examples which illustrate how various kinds of data can be displayed and analyzed graphically using the interactive executable graphics program gnuplot().

GRAPHICS_EXAMPLES_GRACE, examples which illustrate how various kinds of data can be displayed and analyzed graphically using the interactive executable graphics program grace().

GRAPHICS_EXAMPLES_PLOTLY, examples which illustrate how various kinds of data can be displayed and analyzed graphically, using the plotly() program from a browser.

MARIO, a Python program which creates a sort of "needlepoint" image of Mario, as an array of colored squares.

**CIRCLE_INOUT** depicts 500 pairs of (X,Y) data points in the unit square,
395 of which lie inside the unit circle, and 105 outside. If possible,
the "inside" points should be blue, the "outside" points red, and the
circle itself should also be drawn.

- circle_in_data.txt, the coordinates of points inside the circle.
- circle_out_data.txt, the coordinates of points outside the circle.
- circle_inout.py, reads the data and makes a plot.
- circle_inout.png, a PNG image of the plot.

**CORKSCREW** generates (X,Y,Z) points on a curve, and makes
a 3D line plot.

- corkscrew.m, generates data, saves it to a file, and makes a 3D plot.
- corkscrew_data.txt, a list of the (x,y,z) data values.
- corkscrew.png, a snapshop of the plot. When the original plot is displayed, it can be rotated and zoomed.

**DRUG_DOSAGE** depicts measurements over 48 hours of the
blood level concentration of a medicinal drug. The drug needs
to reach a certain level to have an effect, but must not exceed
the toxic level.

- drug_dosage_data.txt, a record of times and concentrations;
- drug_dosage.py, reads the data and makes a plot.
- drug_dosage.png, a PNG image of the plot.

**GEYSER** contains the waiting time in minutes between
successive eruptions of the Old Faithful geyser. 299 values are
recorded. The data ranges from 43 to 108. It should be displayed in 14 bins
of width 5 from 40 to 110. The data comes from Martinez and Martinez.

- geyser_data.txt, the data set;
- geyser.py, reads the data and makes a plot.
- geyser.png, a PNG image of the plot.

**LISSAJOUS** records 1000 points on a Lissajous curve defined by
x=sin(3*t+pi/2), y=sin(4t). The curve is to be plotted and every
tenth point marked.

- lissajous_data.txt, the data.
- lissajous.py, reads the data and makes a plot.
- lissajous.png, a PNG image of the plot.

**LYNX** records the yearly lynx harvest from 1821 to 1934.
The graph should plot the data points as circles, and connect consecutive
data points with straight line segments to suggest a curve.

- lynx_data.txt, the data.
- lynx.py, reads the data and makes a plot.
- lynx.png, a PNG image of the plot.

**MARIO** makes a simple image of Mario, using colored squares.

**ORBITAL** records, on a 101x101 grid over [0,4*pi]x[0,4*pi], the
minimum distance between two planets given a pair of orbital angles. A
contour plot of this data is to be presented.

- orbital_data.txt, the data.
- orbital.py, reads the data and makes a plot.
- orbital.png, a PNG image of the plot.

**PREDATOR** generates values of time, prey, and predator populations,
writes them to a file, and displays them in a 3D plot.

- predator_data.m, generates data, saves it to a file, and makes a 3D plot.
- predator.txt, a list of the data values.
- predator.png, a snapshop of the plot. When the original plot is displayed, it can be rotated and zoomed.

**SCATTER_PLOT** generates a scatter plot of 500 normally distributed (X,Y) points.

- scatter_plot.py, creates the data and displays a scatter plot.
- scatter_plot.png, a PNG image of the plot.

**SURFACE_GRID** records, on a 41x41 grid over [-2,2]x[-2,+2], the values
z = exp(-(x^2+y^2)) * cos(0.25*x) * sin(y) * cos(2*(x^2+y^2)).
The data is to be plotted as a surface.

- surface_grid_data.txt, the data.
- surface_grid.py, reads the data and makes a plot.
- surface_grid.png, a PNG image of the plot.

- graphics_examples_test.py, calls all the tests;
- graphics_examples_test.sh, runs all the tests;
- graphics_examples_test.txt, the output file;

You can go up one level to the Python source codes.