Search code examples
phpjpegjpgraph

how set a label image for group bar Jpgraph column chart in php


here is my jpgraph demo code:

<?php
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_bar.php');

$datay1=array(35,160,0,0,0,0);
$datay2=array(35,190,190,190,190,190);
$datay3=array(20,70,70,140,230,260);

$graph = new Graph(450,200,'auto');    
$graph->SetScale("textlin");
$graph->SetShadow();
$graph->img->SetMargin(40,30,40,40);
$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());

$graph->xaxis->title->Set('Year 2002');
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

$graph->title->Set('Group bar plot');
$graph->title->SetFont(FF_FONT1,FS_BOLD);

$bplot1 = new BarPlot($datay1);
$bplot2 = new BarPlot($datay2);
$bplot3 = new BarPlot($datay3);

$bplot1->SetFillColor("orange");
$bplot2->SetFillColor("brown");
$bplot3->SetFillColor("darkgreen");

$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
$gbarplot->SetWidth(0.6);
$graph->Add($gbarplot);

$graph->Stroke();
?>

this code has no error and this is working perfectly...my problem is how can I set image labels for this group bars for identifying those color bars...

norml out put chart is this:enter image description here

Need set this label image: enter image description here

I want this kind of final out put : enter image description here

How can I do it ????


Solution

  • Here my code:

    <?php
    require_once ('jpgraph/jpgraph.php');
    require_once ('jpgraph/jpgraph_bar.php');
    
    $datay1=array(35,160,0,0,0,0);
    $datay2=array(35,190,190,190,190,190);
    $datay3=array(20,70,70,140,230,260);
    
    $graph = new Graph(450,200,'auto');    
    $graph->SetScale("textlin");
    $graph->SetShadow();
    $graph->img->SetMargin(40,30,40,40);
    $graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
    
    $graph->xaxis->title->Set('Year 2002');
    $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
    
    $graph->title->Set('Group bar plot');
    $graph->title->SetFont(FF_FONT1,FS_BOLD);
    
    $bplot1 = new BarPlot($datay1);
    $bplot2 = new BarPlot($datay2);
    $bplot3 = new BarPlot($datay3);
    
    $bplot1->SetFillColor("orange");
    $bplot2->SetFillColor("brown");
    $bplot3->SetFillColor("darkgreen");
    
    $gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
    $gbarplot->SetWidth(0.6);
    
    
    $graph->legend->SetPos(0.12,0.01,'left','top');
    $graph->legend->SetLayout(LEGEND_VERT);
    $graph->legend->SetFrameWeight(1);
    
    $bplot1->SetLegend("Pass");
    $bplot2->SetLegend("Fail");
    $bplot3->SetLegend("Not Eligible");
    
    
    $graph->Add($gbarplot);
    
    $graph->Stroke();
    ?>
    

    generated chart is: Test bar chart with legend

    i hope this will help you achieve your target.