Unnoficial mirror of JpGraph, with updated releases
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.prettierrc compatibility with older kint Oct 14, 2018


JPGRAPH v3.6.15, Community Edition

Packagist FOSSA Status

Code Climate Codacy Badge Scrutinizer Code Quality Build Status StyleCI Code Coverage FOSSA Status

This is an unnoficial refactor of JpGraph with thefollowing differences:

  • the app was fully refactored adding namespaces, proper folder hierarchy, separating each class in its own file and stripping the use of require and include to the bare minimum
  • dropping support for PHP < 5.6.
  • it provides full composer compatibility
  • it has PSR-4 autoloading
  • it makes requirement checks so you can't go wrong
  • it has release tags, to let composer install use your cached packages instead of pulling from github every time
  • I stripped the docs because they are useless weight in a dependency. You can find them here
  • The Examples folder were moved upwards, althought they are now in categories. Not all of them work at this point
  • Examples pointing to features not present in the free tool were stripped from said folder (e.g. Barcodes)
  • If the chosen font isn't found, it falls back to existing fonts instead of crashing
  • If you try to use antialiasing functions not present in your current GD installation, it disables them instead of crashing

How to install

Using composer

composer require amenadiel/jpgraph:^3.6

How to use

See the examples folder for working samples.

The examples work the same way you should use this library:

  • run composer install

  • require vendor/autoload.php it the top of your script

  • generate a graph with a snippet like the following

   require_once './vendor/autoload.php';
   use Amenadiel\JpGraph\Graph;
   use Amenadiel\JpGraph\Plot;

   // Create the Pie Graph.
   $graph = new Graph\PieGraph(350, 250);
   $graph->title->Set("A Simple Pie Plot");

   $data = array(40, 21, 17, 14, 23);
   $p1   = new Plot\PiePlot($data);
   $p1->SetSliceColors(array('#1E90FF', '#2E8B57', '#ADFF2F', '#DC143C', '#BA55D3'));

  • important always instance your graph (of any kind) before creating its contents. This will in turn load all needed constants to the global scope.

See the examples working by performing the following steps:

  • run composer install
  • run make start or php -S localhost:8000 -t Examples
  • Open your browser at http://localhost:8000

Change the config

You can override some configs set on config.inc.php by creating a .env file in your project root. See .env.example as a reference.


  • Get all the examples working (half of them have yet to be transformed from the old code to the new PSR-4 format)
  • Add more tests (We need to test more classes and methods besides the ones in the examples, as well as perform more assetions on the current tests)
  • Add alternative use of imagick



This package contains the JpGraph PHP library Pro version 3.5.x

The library is Copyright (C) 2000-2010 Asial Corporatoin and released under dual license QPL 1.0 for open source and educational use and JpGraph Professional License for commercial use.

Please see full license details at http://jpgraph.net/pro/ http://jpgraph.net/download/




  • PHP 5.1.0 or higher
  • GD 2.0.28 or higher Note: Earlier versions might work but is unsupported.


  • = PHP 5.2.0

  • PHP Builtin GD library


  1. Make sure that the PHP version is compatible with the stated requirements and that the PHP installation has support for the GD library. Please run phpinfo() to check if GD library is supported in the installation. If the GD library doesn't seem to be installed please consult the PHP manual under section "Image" for instructions on where to find this library. Please refer to the manual section "Verifying your PHP installation"

  2. Unzip and copy the files to a directory of your choice where Your httpd sever can access them. For a global site installation you should copy the files to somewhere in the PHP search path.

  3. Check that the default directory paths in jpg-config.inc.php for cache directory and TTF directory suits your installation. Note1: The default directories are different depending on if the library is running on Windows or UNIX. Note2: Apache/PHP must have write permission to your cache directory if you enable the cache feature. By default the cache is disabled.


The installation includes HTML documentation and reference guide for the library. The portal page for all documentation is /docs/index.html

Bug reports and suggestions

Should be reported using the contact form at



FOSSA Status