Heuristic ranking analysis
[contractdashboard.git] / heuristics / viewHeuristicsDistribution.php
blob:a/heuristics/viewHeuristicsDistribution.php -> blob:b/heuristics/viewHeuristicsDistribution.php
  <?php
   
  /*// most interesting
  SELECT sum(heuristic_value) as sum, CNID
  FROM `heuristic_results` group by CNID order by sum DESC limit 30
   
  // spread of values
  select floor(sum) as val,count(*) from (SELECT sum(heuristic_value)
  as sum FROM heuristic_results group by CNID) as a group by val*/
   
  /* CAT:Spline chart */
   
  /* pChart library inclusions */
  include("../lib/pChart2.1.0/class/pData.class.php");
  include("../lib/pChart2.1.0/class/pDraw.class.php");
  include("../lib/pChart2.1.0/class/pImage.class.php");
  $labels = Array();
  $values = Array();
   
  include_once("../lib/common.inc.php");
  $query = "select floor(sum) as val,count(*) from (SELECT sum(heuristic_value)
  as sum FROM heuristic_results group by CNID) as a group by val";
  $result = mysql_query($query);
  if (!$result) echo mysql_error().$query;
  while ($r = mysql_fetch_array($result, MYSQL_BOTH)) {
  $labels[] = $r[0];
  $values[] = $r[1];
  }
   
  /* Create and populate the pData object */
  $MyData = new pData();
  $MyData->addPoints($values,"Records");
  $MyData->setAxisName(0,"# of records");
  $MyData->addPoints($labels,"Labels");
  $MyData->setSerieDescription("Labels","Bins");
  $MyData->setAbscissa("Labels");
   
  /* Create the pChart object */
  $myPicture = new pImage(700,230,$MyData);
   
  /* Turn of Antialiasing */
  $myPicture->Antialias = FALSE;
   
  /* Add a border to the picture */
  $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0));
   
  /* Write the chart title */
  $myPicture->setFontProperties(array("FontName"=>"../lib/pChart2.1.0/fonts/Forgotte.ttf","FontSize"=>11));
  $myPicture->drawText(150,35,"Record distribution",array("FontSize"=>20,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
   
  /* Set the default font */
  $myPicture->setFontProperties(array("FontName"=>"../lib/pChart2.1.0/fonts/pf_arma_five.ttf","FontSize"=>6));
   
  /* Define the chart area */
  $myPicture->setGraphArea(60,40,650,200);
   
  /* Draw the scale */
  $scaleSettings = array("XMargin"=>10,"YMargin"=>0,"Floating"=>TRUE,"GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE);
  $myPicture->drawScale($scaleSettings);
   
  /* Turn on Antialiasing */
  $myPicture->Antialias = TRUE;
   
  /* Draw the line chart */
  $myPicture->drawSplineChart();
   
  /* Write the chart legend */
  $myPicture->drawLegend(540,20,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));
   
  /* Render the picture (choose the best way) */
  $myPicture->autoOutput("pictures/example.drawSplineChart.simple.png");
  ?>