GithubHelp home page GithubHelp logo

jpgraph's Introduction

JPGRAPH v4.0.0 Community Edition

You're seeing the README for version ^4, which requires PHP v7.0 or newer. If you need to run under PHP 5.6, please check release v3.6

Packagist FOSSA Status

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

For a long time, JpGraph got stalled at version 3.5.x (see its README), so we decided to refactor and release a Community Edition with a few improvements:

  • 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
  • It requires PHP 7.0 or newer
  • 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:^4

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");
   $graph->SetBox(true);

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

   $graph->Add($p1);
   $graph->Stroke();
  • 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.

Wishlist

  • 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

jpgraph_logo

License

FOSSA Status

jpgraph's People

Contributors

ffflabs avatar roelfsche avatar corwatts avatar mot3rror avatar eisberg avatar iquito avatar abidaks avatar funkjedi avatar fossabot avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.