davefx/phplot-bundle

Symfony2 bundle for PHPlot - Chart toolkit for PHP

Installs: 6 919

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 3

Forks: 0

Type:symfony-bundle

dev-master 2013-05-14 10:45 UTC

This package is not auto-updated.

Last update: 2024-11-04 14:11:19 UTC


README

Symfony2 bundle for PHPlot - Graph library for charts.

Requirements

Installation (Composer)

0. Install Composer

If you don't have Composer yet, download it following the instructions on http://getcomposer.org/ or just run the following command:

curl -s http://getcomposer.org/installer | php

1. Add the davefx/phplot-bundle package and the phplot repository in your composer.json

{
    "require": {
        "davefx/phplot-bundle": "dev-master"
    }
}

Now tell composer to download the bundle by running the command:

$ php composer.phar update noiselabs/nusoap-bundle

Composer will install the bundle to your project's vendor/noiselabs directory.

2. Enable the bundle

Enable the bundle in the kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new DaveFX\Bundle\PHPlotBundle\DaveFXPHPlotBundle(),
    );
}

Usage

/* ExampleController.php */

namespace ACME\ExampleBundle\Controller;
 
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

function generateExampleChartAction()
{
    $data = array(
      array('', 1800,   5), array('', 1810,   7), array('', 1820,  10),
      array('', 1830,  13), array('', 1840,  17), array('', 1850,  23),
      array('', 1860,  31), array('', 1870,  39), array('', 1880,  50),
      array('', 1890,  63), array('', 1900,  76), array('', 1910,  92),
      array('', 1920, 106), array('', 1930, 123), array('', 1940, 132),
      array('', 1950, 151), array('', 1960, 179), array('', 1970, 203),
      array('', 1980, 227), array('', 1990, 249), array('', 2000, 281),
    );
    
    $plot = new \PHPlot(800,600);
    
    $plot->SetImageBorderType('plain');
    
    $plot->SetPlotType('lines');
    $plot->SetDataType('data-data');
    $plot->SetDataValues($data);
    
    # Main plot title:
    $plot->SetTitle('US Population, in millions');
    
    # Make sure Y axis starts at 0:
    $plot->SetPlotAreaWorld(NULL, 0, NULL, NULL);
    
    ob_start();
    $plot->DrawGraph();
    $str = ob_get_clean();
    
    return new Response($str, 200, array("Content-type: image/png"));
}