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