INTRODUCTION

PLplot <http://plplot.org/> is a cross-platform (see
PLATFORMS below) software package for creating scientific plots whose
(UTF-8 <http://www.utf-8.com/>) plot symbols and text are limited in
practice only by what Unicode<"http://www.unicode.org/>-aware system
fonts are installed on a user's computer.  The PLplot software, which is
primarily licensed under the LGPL
<http://www.gnu.org/licenses/lgpl.html>, has a clean architecture that
is organized as a core C library, separate language bindings for that
library (see BINDINGS below), and separate dynamically loaded device
drivers (see DEVICE DRIVERS below) which control how the plots are
presented in noninteractive and interactive plotting contexts.

The PLplot core library can be used to create standard x-y plots,
semi-log plots, log-log plots, contour plots, 3D surface plots, mesh
plots, bar charts and pie charts. Multiple graphs (of the same or
different sizes) may be placed on a single page, and multiple pages
are allowed for those device formats that support them.

PLplot has core library support for plot symbols and text specified by
the user in the UTF-8 encoding of Unicode. This means for our many
Unicode-aware devices that plot symbols and text are only limited by
the collection of glyphs normally available via installed system
fonts.  Furthermore, a large subset of our Unicode-aware devices also
support complex text layout (CTL) languages such as Arabic, Hebrew,
and Indic and Indic-derived CTL scripts such as Devanagari, Thai, Lao,
and Tibetan.  Thus, for these PLplot devices essentially any language
that is supported by Unicode and installed system fonts can be used to
label plots.

PLATFORMS

PLplot is currently known to work on the following platforms:

Linux, Mac OS X, and other Unices
MSVC IDE on the Microsoft version of Windows (Windows 2000 and later)
Cygwin on the Microsoft version of Windows
MinGW/MSYS on the Microsoft version of Windows
MinGW/MSYS on the Wine version of Windows

For each of the above platforms, PLplot can be built from source (see
SOURCE CODE below), and for the Linux and Mac OS X platforms
third-party binary packages for PLplot (see BINARY PACKAGES below) are available.

BINDINGS

PLplot bindings exist for the following compiled and interpreted languages:

Ada
C/C++/D
Fortran
Java
Lisp
Lua
OCaml
Octave
Perl
Python
Tcl/Tk

The above list of bindings all are part of the PLplot software package
with the exception of the Lisp
<http://common-lisp.net/project/cl-plplot/> and Perl
<http://search.cpan.org/~dhunt/PDL-Graphics-PLplot/> bindings which
are independent projects.  The Java, Lua, Octave, and Python bindings
are all generated by SWIG <http://www.swig.org/>, and a
straightforward expansion of this effort could be used to generate
additional bindings for PLplot using the many computer languages
<http://www.swig.org/compat.html#SupportedLanguages> that are
supported by SWIG.

DEVICE DRIVERS

The PLplot device drivers are typically built as shared objects that
can be dynamically loaded by our core library.  It is straightforward
to add noninteractive or interactive device drivers to PLplot by
writing a small number of device-dependent routines.

Existing noninteractive PLplot device drivers support the following
file formats:

CGM
GIF
JPEG
LaTeX
PBM
PDF
PNG
PostScript
SVG
Xfig

Existing interactive PLplot device drivers are available for the
following platforms:

Gtk+
PyQt
Qt
Tcl/Tk
wxWidgets
X

SOURCE CODE

All our Windows users and many of our Unix users build PLplot from
source code using our build system that is implemented with CMake <http://cmake.org>
following the directions in our wiki
<https://sourceforge.net/p/plplot/wiki>.  PLplot source code can be
accessed a number of ways.  You can obtain the latest stable version
of PLplot from <http://sourceforge.net/projects/plplot/files/plplot/>.
Alternatively, you can obtain the cutting-edge version of PLplot
source code (but with no promises about stability) using the command

git clone git://git.code.sf.net/p/plplot/plplot plplot.git

and you can browse our git repository at
<http://sourceforge.net/p/plplot/plplot/ci/master/tree/>.

BINARY PACKAGES

A number of third-party binary packages for PLplot are available.
Binary packages for Linux are provided by at least Ubuntu
<http://packages.ubuntu.com/search?keywords=plplot&searchon=names&suite=all&section=all>,
Debian
<https://packages.debian.org/search?searchon=sourcenames&keywords=plplot>,
Fedora <https://apps.fedoraproject.org/packages/plplot>, and openSUSE
<http://software.opensuse.org/package/plplot>.  Binary packages for
Mac OS X are provided by at least Fink
<http://www.finkproject.org/pdb/browse.php?summary=plplot>, Homebrew
<https://github.com/Homebrew/homebrew/blob/master/Library/Formula/plplot.rb>, and MacPorts
<https://www.macports.org/ports.php?by=name&substr=plplot>.  To our
knowledge no binary packages for PLplot are currently available for
Windows platforms so our Windows users must build PLplot
from source (see SOURCE CODE above).

OTHER WEB RESOURCES

The most up-to-date information about PLplot can be found at our
principal website <http://plplot.org/>.  There you will
find the following important PLplot links:
news <http://sourceforge.net/p/plplot/news/>,
example code and resulting PLplot screenshots
<http://plplot.org/examples.php>,
documentation <http://plplot.org/documentation.php>,
credits <http://plplot.org/credits.php>,
wiki <https://sourceforge.net/p/plplot/wiki>,
SourceForge project page <http://sourceforge.net/projects/plplot>,
project support page <http://sourceforge.net/projects/plplot/support>,
mailing lists <http://sourceforge.net/p/plplot/mailman/>,
and bug tracker <http://sourceforge.net/p/plplot/bugs/>.
