PLplot is a cross-platform software package for creating scientific plots whose (UTF-8) plot symbols and text are limited in practice only by what Unicode-aware system fonts are installed on a user's computer. The PLplot software, which is primarily licensed under the LGPL, has a clean architecture that is organized as a core C library, separate language bindings for that library, and separate device drivers that are dynamically loaded by the core library 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.

Feature Summary

Cross Platform

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-w64/MSYS2 on the Microsoft version of Windows

For each of the above platforms, PLplot can be built from source, and for the Linux and Mac OS X platforms third-party binary packages for PLplot are available.

Language Bindings

The language bindings of the C PLplot library are currently the following:

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

Output File Formats

PLplot device drivers support a number of plotting file formats.

  • CGM
  • GIF
  • JPEG
  • PBM
  • PDF
  • PNG
  • PostScript
  • SVG
  • Xfig

Interactive Platforms

PLplot device drivers support a number of platforms that are suitable for interactive plotting.

  • GDI
  • GTK+
  • PyQt
  • Qt
  • Tcl/Tk
  • wxWidgets
  • X


Polar plot Shade 3D plots Contouring plot False colour plot False colour plot Unicode example Alpha color support

You can find the code for these and other examples at the examples page


Could not open News feed!


Source Code