title: create a double column graph in fpdf php
body: <p>I'm creating a graph in fpdf and I saw <a href="https://stackoverflow.com/questions/13925279/how-to-create-double-bar-diagram-using-fpdf-php">this question</a> and it is exactly the same as what I need but when I copied it on my <strong>report-weekly.php</strong> file it doesn't work and gave me an error message of</p>
  <blockquote>
  <p>Notice: Undefined offset: 0 in C:\xampp\htdocs\qtqt\asd\report-weekly.php on line 112</p>
  <p>Notice: Undefined offset: 1 in C:\xampp\htdocs\qtqt\asd\report-weekly.php on line 112</p>
  <p>Notice: Undefined offset: 2 in C:\xampp\htdocs\qtqt\asd\report-weekly.php on line 112
  FPDF error: Some data has already been output, can't send PDF file</p>
  </blockquote>
  <p>this is the code I copied</p>
  <pre><code>&lt;?php
  
  require('diag/sector.php');
  
  class PDF_Diag extends PDF_Sector {
      var $legends;
      var $wLegend;
      var $sum;
      var $NbVal;
  
  
      function ColumnChart($w, $h, $data, $format, $color=null, $maxVal=0, $nbDiv=4)
      {
  
          // RGB for color 0
          $colors[0][0] = 155;
          $colors[0][1] = 75;
          $colors[0][2] = 155;
  
          // RGB for color 1
          $colors[1][0] = 0;
          $colors[1][1] = 155;
          $colors[1][2] = 0;
  
          // RGB for color 2
          $colors[2][0] = 75;
          $colors[2][1] = 155;
          $colors[2][2] = 255;
  
          // RGB for color 3
          $colors[3][0] = 75;
          $colors[3][1] = 0;
          $colors[3][2] = 155;
  
          $this-&gt;SetFont('Courier', '', 10);
          $this-&gt;SetLegends($data,$format);
  
          // Starting corner (current page position where the chart has been inserted)
          $XPage = $this-&gt;GetX();
          $YPage = $this-&gt;GetY();
          $margin = 2; 
  
          // Y position of the chart
          $YDiag = $YPage + $margin;
  
          // chart HEIGHT
          $hDiag = floor($h - $margin * 2);
  
          // X position of the chart
          $XDiag = $XPage + $margin;
  
          // chart LENGHT
          $lDiag = floor($w - $margin * 3 - $this-&gt;wLegend);
  
          if($color == null)
              $color=array(155,155,155);
          if ($maxVal == 0) 
          {
              foreach($data as $val)
              {
                  if(max($val) &gt; $maxVal)
                  {
                      $maxVal = max($val);
                  }
              }
          }
  
          // define the distance between the visual reference lines (the lines which cross the chart's internal area and serve as visual reference for the column's heights)
          $valIndRepere = ceil($maxVal / $nbDiv);
  
          // adjust the maximum value to be plotted (recalculate through the newly calculated distance between the visual reference lines)
          $maxVal = $valIndRepere * $nbDiv;
  
          // define the distance between the visual reference lines (in milimeters)
          $hRepere = floor($hDiag / $nbDiv);
  
          // adjust the chart HEIGHT
          $hDiag = $hRepere * $nbDiv;
  
          // determine the height unit (milimiters/data unit)
          $unit = $hDiag / $maxVal;
  
          // determine the bar's thickness
          $lBar = floor($lDiag / ($this-&gt;NbVal + 1));
          $lDiag = $lBar * ($this-&gt;NbVal + 1);
          $eColumn = floor($lBar * 80 / 100);
  
          // draw the chart border
          $this-&gt;SetLineWidth(0.2);
          $this-&gt;Rect($XDiag, $YDiag, $lDiag, $hDiag);
  
          $this-&gt;SetFont('Courier', '', 10);
          $this-&gt;SetFillColor($color[0],$color[1],$color[2]);
          $i=0;
          foreach($data as $val) 
          {
              //Column
              $yval = $YDiag + $hDiag;
              $xval = $XDiag + ($i + 1) * $lBar - $eColumn/2;
              $lval = floor($eColumn/(count($val)));
              $j=0;
              foreach($val as $v)
              {
                  $hval = (int)($v * $unit);
                  $this-&gt;SetFillColor($colors[$j][0], $colors[$j][1], $colors[$j][2]);
                  $this-&gt;Rect($xval+($lval*$j), $yval, $lval, -$hval, 'DF');
                  $j++;
              }
  
              //Legend
              $this-&gt;SetXY($xval, $yval + $margin);
              $this-&gt;Cell($lval, 5, $this-&gt;legends[$i],0,0,'C');
              $i++;
          }
  
          //Scales
          for ($i = 0; $i &lt;= $nbDiv; $i++) 
          {
              $ypos = $YDiag + $hRepere * $i;
              $this-&gt;Line($XDiag, $ypos, $XDiag + $lDiag, $ypos);
              $val = ($nbDiv - $i) * $valIndRepere;
              $ypos = $YDiag + $hRepere * $i;
              $xpos = $XDiag - $margin - $this-&gt;GetStringWidth($val);
              $this-&gt;Text($xpos, $ypos, $val);
          }
      }
  
      function SetLegends($data, $format)
      {
          $this-&gt;legends=array();
          $this-&gt;wLegend=0;
          $this-&gt;NbVal=count($data);
      }
  }
  
  
  $pdf = new PDF_Diag();
  $pdf-&gt;AddPage();
  
  
  $data[0] = array(470, 490, 90);
  $data[1] = array(450, 530, 110);
  $data[2] = array(420, 580, 100);
  
  
  // Column chart
  $pdf-&gt;SetFont('Arial', 'BIU', 12);
  $pdf-&gt;Cell(210, 5, 'Chart Title', 0, 1, 'C');
  $pdf-&gt;Ln(8);
  $valX = $pdf-&gt;GetX();
  $valY = $pdf-&gt;GetY();
  $pdf-&gt;ColumnChart(110, 100, $data, null, array(255,175,100));
  //$pdf-&gt;SetXY($valX, $valY);
  
  $pdf-&gt;Output();
  
  
  ?&gt;
  </code></pre>