SourceForge.net  |  Sunyday.net
Last release: 1.27d
a PHP Class to build Charts
pChart 2.x is born, you can start moving your script to this new version. The new website is at www.pchart.net.
Overview  |  Screenshots  |  Download  |  Add-ons  |  Demonstration  |  Support  |  :: Documentation ::
Documentation Contents
Overview
Class definition
FAQ
Digging with pChart
Basic Examples
Advanced Examples
Graphs labels
Small "Fast Graphs"
Using pCache
Line style, Pics inclusion
Importing CSV data
Error reporting
Missing values
Playing with axis formats
Playing with backgrounds
High quality graphics
Customizing plot charts
2nd Y axis and shadows
Example #18 - Missing values

This example shows how pChart is dealing with missing values. Both line and curve graphs are interrupted. The Y axis caption is set using the SetYAxisName function. Different graph type are associated to different series calling both RemoveSerie and AddSerie.


Output :


Source code :

  1. <?php  
  2.  // Standard inclusions     
  3.  include("pChart/pData.class");  
  4.  include("pChart/pChart.class");  
  5.   
  6.  // Dataset definition   
  7.  $DataSet = new pData;  
  8.  $DataSet->AddPoint(array(2,5,7,"","",5,6,4,8,4,"",2,5,6,4,5,6,7,6),"Serie1");  
  9.  $DataSet->AddPoint(array(-1,-3,-1,-2,-4,-1,"",-4,-5,-3,-2,-2,-3,-3,-5,-4,-3,-1,""),"Serie2");  
  10.  $DataSet->AddAllSeries();  
  11.  $DataSet->SetAbsciseLabelSerie();  
  12.  $DataSet->SetSerieName("Raw #1","Serie1");  
  13.  $DataSet->SetSerieName("Raw #2","Serie2");  
  14.  $DataSet->SetYAxisName("Response time");  
  15.  $DataSet->SetXAxisName("Sample #ID");  
  16.   
  17.  // Initialise the graph  
  18.  $Test = new pChart(700,230);  
  19.  $Test->setFontProperties("Fonts/tahoma.ttf",8);  
  20.  $Test->setGraphArea(55,30,585,185);  
  21.  $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);  
  22.  $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);  
  23.  $Test->drawGraphArea(255,255,255,TRUE);  
  24.  $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE);  
  25.  $Test->drawGrid(4,TRUE,230,230,230,50);  
  26.   
  27.  // Draw the 0 line  
  28.  $Test->setFontProperties("Fonts/tahoma.ttf",6);  
  29.  $Test->drawTreshold(0,143,55,72,TRUE,TRUE);  
  30.   
  31.  // Draw the line graph  
  32.  $DataSet->RemoveSerie("Serie2");  
  33.  $Test->drawFilledLineGraph($DataSet->GetData(),$DataSet->GetDataDescription(),60,TRUE);     
  34.   
  35.  // Draw the curve graph  
  36.  $DataSet->RemoveSerie("Serie1");  
  37.  $DataSet->AddSerie("Serie2");  
  38.  $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription());  
  39.  $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255);     
  40.   
  41.  // Finish the graph  
  42.  $Test->setFontProperties("Fonts/tahoma.ttf",8);  
  43.  $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255);  
  44.  $Test->setFontProperties("Fonts/tahoma.ttf",10);  
  45.  $Test->drawTitle(50,22,"Example 18",50,50,50,585);  
  46.  $Test->Render("example18.png");  
  47. ?>  
If you want to send the picture directly in a browser, replace the Render() command by Stroke().


Last updated on 07/27/2008