function create_common_image($title, $width, $height, $data, $chart_type = 'line') { global $pchart_path; /* Create the pChart object */ $myPicture = new pImage($width, $height, $data); /* Draw the background */ $Settings = array("R" => 255, "G" => 255, "B" => 255, "Dash" => 1, "DashR" => 185, "DashG" => 225, "DashB" => 255); $myPicture->drawFilledRectangle(0, 0, $width, $height, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 206, "StartG" => 235, "StartB" => 235, "EndR" => 71, "EndG" => 150, "EndB" => 205, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, $width, $height, DIRECTION_VERTICAL, $Settings); $myPicture->drawGradientArea(0, 0, $width, 20, DIRECTION_VERTICAL, array("StartR" => 0, "StartG" => 0, "StartB" => 0, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 80)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, $width - 1, $height - 1, array("R" => 0, "G" => 0, "B" => 0)); /* Write the picture title */ $myPicture->setFontProperties(array("FontName" => $pchart_path . "/fonts/arialbd.ttf", "FontSize" => 9)); $myPicture->drawText(24, 12, win2uni($title), array("R" => 255, "G" => 255, "B" => 255, "Align" => TEXT_ALIGN_MIDDLELEFT)); $myPicture->drawFromPNG(4, 4, "includes/design/images/chart_pie.png"); if ($chart_type == 'line') { $myPicture->setFontProperties(array("FontName" => $pchart_path . "/fonts/arial.ttf", "FontSize" => 8)); /* Draw the scale and the 1st chart */ $myPicture->setGraphArea(60, 64, 450 + 200, 190); $myPicture->drawFilledRectangle(60, 50, 450 + 200, 190, array("R" => 255, "G" => 255, "B" => 255, "Surrounding" => -255, "Alpha" => 60)); $myPicture->drawScale(array("Mode" => SCALE_MODE_START0, "DrawSubTicks" => FALSE, "GridR" => 151, "GridG" => 197, "GridB" => 254, "GridAlpha" => 30)); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); } $myPicture->setFontProperties(array("FontName" => $pchart_path . "/fonts/pf_arma_five.ttf", "FontSize" => 6)); return $myPicture; }
function renderChart($chartType, $title, $prepData, $legend) { $width = 800; $height = 500; $titleHeight = 20; /* * Create a dataset we can use */ $dataSet = array_values($prepData); $imgData = new pData(); if ($chartType == "bar") { $imgData->addPoints($dataSet, "data"); $imgData->addPoints($legend, "legend"); $imgData->setAbscissa("legend"); $imgData->setPalette("data", array("R" => 0, "G" => 108, "B" => 171, "Alpha" => 100)); $img = new pImage($width, $height, $imgData); $img->drawGradientArea(0, $titleHeight, $width, $height, DIRECTION_VERTICAL, array("StartR" => 200, "StartG" => 200, "StartB" => 200, "EndR" => 18, "EndG" => 52, "EndB" => 86, "Alpha" => 100)); $img->drawGradientArea(0, 0, $width, $titleHeight, DIRECTION_VERTICAL, array("StartR" => 18, "StartG" => 52, "StartB" => 86, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 100)); $img->setFontProperties(array("FontName" => "images/ttf/liberation-sans/LiberationSans-Bold.ttf", "FontSize" => 10)); $img->drawText($width / 2, 13, $title, array("Align" => TEXT_ALIGN_MIDDLEMIDDLE, "R" => 255, "G" => 255, "B" => 255)); $img->setFontProperties(array("R" => 255, "G" => 255, "B" => 255, "FontName" => "images/ttf/liberation-sans/LiberationSans-Regular.ttf", "FontSize" => 9)); $img->setGraphArea(60, $titleHeight + 20, $width - 50, $height - 30); $img->drawScale(array("GridR" => 200, "GridG" => 200, "GridB" => 200, "Mode" => SCALE_MODE_START0)); $img->drawBarChart(array("Gradient" => TRUE, "GradientMode" => GRADIENT_EFFECT_CAN, "DisplayPos" => LABEL_POS_INSIDE, "DisplayValues" => TRUE, "Surrounding" => 10)); } elseif ($chartType == "3Dpie") { $imgData->addPoints($dataSet, "data"); $imgData->addPoints($legend, "legend"); $imgData->setAbscissa("legend"); $img = new pImage($width, $height, $imgData, TRUE); $PieChart = new pPie($img, $imgData); $img->drawGradientArea(0, $titleHeight, $width, $height, DIRECTION_VERTICAL, array("StartR" => 200, "StartG" => 200, "StartB" => 200, "EndR" => 18, "EndG" => 52, "EndB" => 86, "Alpha" => 100)); $img->drawGradientArea(0, 0, $width, $titleHeight, DIRECTION_VERTICAL, array("StartR" => 18, "StartG" => 52, "StartB" => 86, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 100)); $img->setFontProperties(array("FontName" => "images/ttf/liberation-sans/LiberationSans-Bold.ttf", "FontSize" => 10)); $img->drawText($width / 2, 13, $title, array("Align" => TEXT_ALIGN_MIDDLEMIDDLE, "R" => 255, "G" => 255, "B" => 255)); $PieChart->setSliceColor(0, array("R" => 0, "G" => 108, "B" => 171)); $PieChart->setSliceColor(1, array("R" => 205, "G" => 159, "B" => 0)); $PieChart->setSliceColor(2, array("R" => 0, "G" => 171, "B" => 0)); $PieChart->setSliceColor(3, array("R" => 171, "G" => 28, "B" => 0)); $img->setFontProperties(array("FontName" => "images/ttf/liberation-sans/LiberationSans-Regular.ttf", "FontSize" => 9)); $PieChart->draw3DPie($width / 2, $height / 2 + $titleHeight, array("Radius" => $width / 2 - 100, "SecondPass" => TRUE, "DrawLabels" => TRUE, "WriteValues" => TRUE, "Precision" => 2, "ValueR" => 0, "ValueG" => 0, "ValueB" => 0, "ValueAlpha" => 100, "SkewFactor" => 0.6, "LabelR" => 255, "LabelG" => 255, "LabelB" => 255, "LabelAlpha" => 100)); } # if if (isset($img)) { ob_start(); $img->render(NULL); $imageString = ob_get_clean(); $dimensions = $this->_svcImageUtil->getImageDimensions($imageString); return array('metadata' => $dimensions, 'content' => $imageString); } else { return false; } # else }
function index() { $width = 600; $height = 230; /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints(array(-4, VOID, VOID, 12, 8, 3), "Female"); $MyData->addPoints(array(3, 12, 15, 8, 5, -5), "Male"); //$MyData->addPoints(array(2,0,5,18,19,22),"Probe 3"); $MyData->setSerieTicks("Male", 4); $MyData->setAxisName(0, "Number of males, females"); $MyData->addPoints(array("Jan", "Feb", "Mar", "Apr", "May", "Jun"), "Labels"); $MyData->setSerieDescription("Labels", "Months"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage($width, $height, $MyData); /* Draw the background */ $Settings = array("R" => 170, "G" => 183, "B" => 87, "Dash" => 1, "DashR" => 190, "DashG" => 203, "DashB" => 107); $myPicture->drawFilledRectangle(0, 0, $width, $height, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, $width, $height, DIRECTION_VERTICAL, $Settings); //$myPicture->drawGradientArea(0,0,700,20,DIRECTION_VERTICAL,array("StartR"=>0,"StartG"=>0,"StartB"=>0,"EndR"=>50,"EndG"=>50,"EndB"=>50,"Alpha"=>80)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, $width - 1, $height - 1, array("R" => 0, "G" => 0, "B" => 0)); /* Write the picture title */ //$myPicture->setFontProperties(array("FontName"=>pClass."fonts/Silkscreen.ttf","FontSize"=>6)); //$myPicture->drawText(10,13,"drawBarChart() - draw a bar chart",array("R"=>255,"G"=>255,"B"=>255)); /* Write the chart title */ $myPicture->setFontProperties(array("FontName" => pClass . "fonts/Forgotte.ttf", "FontSize" => 11)); $myPicture->drawText(250, 55, "Average time to find a set", array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE)); /* Draw the scale and the 1st chart */ $myPicture->setGraphArea(60, 60, 450, 190); $myPicture->drawFilledRectangle(60, 60, 450, 190, array("R" => 255, "G" => 255, "B" => 255, "Surrounding" => -200, "Alpha" => 10)); $myPicture->drawScale(array("DrawSubTicks" => TRUE)); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); $myPicture->setFontProperties(array("FontName" => pClass . "fonts/pf_arma_five.ttf", "FontSize" => 10)); $myPicture->drawBarChart(array("DisplayValues" => TRUE, "DisplayColor" => DISPLAY_AUTO, "Rounded" => TRUE, "Surrounding" => 30)); //$myPicture->drawBarChart(array("DisplayValues"=>TRUE,"DisplayColor"=>DISPLAY_AUTO,"Surrounding"=>30)); $myPicture->setShadow(FALSE); /* Draw the scale and the 2nd chart */ /* $myPicture->setGraphArea(500,60,670,190); $myPicture->drawFilledRectangle(500,60,670,190,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10)); $myPicture->drawScale(array("Pos"=>SCALE_POS_TOPBOTTOM,"DrawSubTicks"=>TRUE)); $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); $myPicture->drawBarChart(); $myPicture->setShadow(FALSE); */ /* Write the chart legend */ //$myPicture->drawLegend(510,205,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL)); $myPicture->drawLegend(500, 105, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_VERTICAL)); /* Render the picture (choose the best way) */ $myPicture->stroke(); }
function ring2d($x, $y, $name) { $MyData = new pData(); $MyData->addPoints($x, "ScoreA"); $MyData->setSerieDescription("ScoreA", "Application A"); /* Define the absissa serie */ $MyData->addPoints($y, "Labels"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(500, 250, $MyData); /* Draw a solid background */ $Settings = array("R" => 170, "G" => 183, "B" => 87, "Dash" => 1, "DashR" => 190, "DashG" => 203, "DashB" => 107); $myPicture->drawFilledRectangle(0, 0, 500, 500, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, 500, 500, DIRECTION_VERTICAL, $Settings); $myPicture->drawGradientArea(0, 0, 500, 30, DIRECTION_VERTICAL, array("StartR" => 0, "StartG" => 0, "StartB" => 0, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 100)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 500, 250, array("R" => 0, "G" => 0, "B" => 0)); /* Write the picture title */ $myPicture->setFontProperties(array("FontName" => "mod/pchart/fonts/verdana.ttf", "FontSize" => 12)); $myPicture->drawText(15, 20, $name, array("R" => 255, "G" => 255, "B" => 255)); /* Set the default font properties */ $myPicture->setFontProperties(array("FontName" => "mod/pchart/fonts/verdana.ttf", "FontSize" => 12, "R" => 80, "G" => 80, "B" => 80)); /* Enable shadow computing */ $myPicture->setShadow(TRUE, array("X" => 2, "Y" => 2, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 50)); /* Create the pPie object */ $PieChart = new pPie($myPicture, $MyData); /* Draw an AA pie chart */ $PieChart->draw2DRing(390, 140, array("WriteValues" => TRUE, "ValueR" => 255, "ValueG" => 255, "ValueB" => 255, "Border" => TRUE)); /* Write the legend box */ $myPicture->setShadow(FALSE); $PieChart->drawPieLegend(10, 50, array("Alpha" => 20)); /* Render the picture (choose the best way) */ $myPicture->autoOutput("2dring.png"); }
function func_bargraphGenerate($student_id, $time, $type, $basepath, $success, $r = "", $g = "", $b = "", $name) { $bookIdResult = $this->func_getBookId('1,2'); $bookID = array(); foreach ($bookIdResult as $book) { $bookID[] = $book['book_id']; } $getActivityTypeIdResult = $this->func_getActivityTypeId('WORD HUNT'); foreach ($getActivityTypeIdResult as $activityTypeId) { $activityTypeId = $activityTypeId['activity_type_id']; } $getActivityIdResult = $this->func_getActivityId($bookID, $activityTypeId); $actId = array(); foreach ($getActivityIdResult as $activityId) { $actId[] = $activityId['activity_id']; } $actNewId = implode(',', $actId); $k = 0; $j = 0; for ($i = 0; $i < 5; $i = $i + 1) { $date[$k] = date("Y-m-d", strtotime("-{$i} day")); $dateRec[] = date('M d', strtotime("-{$i} day")); $k = $k + 1; } $successaccessmentResult = $this->fun_getAssmentResult($student_id, $actNewId, '', $date, "word_hunt", $success); $totalaccessmentResult = $this->fun_getAssmentResult($student_id, $actNewId, '', $date, "word_hunt", '0,1'); for ($i = 0; $i < 5; $i = $i + 1) { $j = $i; if ($totalaccessmentResult['0']['count_' . $j] == "0") { $totalaccessmentResult['0']['count_' . $j] = 1; } $per[$i] = $successaccessmentResult['0']['count_' . $j] / $totalaccessmentResult['0']['count_' . $j] * 100; } $MyData = new pData(); $MyData->addPoints($per, "Server A"); $MyData->setAxisName(0, "Percentage"); $MyData->addPoints(array_reverse($dateRec), "Months"); $MyData->setSerieDescription("Months", "Month"); $MyData->setAbscissa("Months"); $myPicture = new pImage(350, 230, $MyData); /* Turn of Antialiasing */ $myPicture->Antialias = FALSE; /* Add a border to the picture */ $myPicture->drawGradientArea(0, 0, 400, 230, DIRECTION_VERTICAL, array("StartR" => 255, "StartG" => 255, "StartB" => 255, "EndR" => 255, "EndG" => 255, "EndB" => 255, "Alpha" => 100)); // $myPicture->drawRectangle(0,0,400,229,array("R"=>0,"G"=>0,"B"=>0)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => $basepath . "Silkscreen.ttf", "FontSize" => 6)); /* Define the chart area */ $myPicture->setGraphArea(60, 40, 350, 200); /* Draw the scale */ $scaleSettings = array("GridR" => 300, "GridG" => 300, "GridB" => 200, "DrawSubTicks" => FALSE, "CycleBackground" => FALSE, "Pos" => SCALE_POS_LEFTRIGHT, "Mode" => SCALE_MODE_MANUAL, "LabelingMethod" => LABELING_ALL); $myPicture->drawScale($scaleSettings); /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw the chart */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); $settings = array("Surrounding" => -30, "InnerSurrounding" => 30, "Mode" => 0); $myPicture->drawBarChart($settings, $r, $g, $b); /* Render the picture (choose the best way) */ $picname = $student_id . '_' . $name . '_' . $time . '.png'; $this->fun_getImageLog($student_id, $picname, $type, $time, $name); $myPicture->render("uploads/graph/" . $picname); }
<?php /* CAT:Drawing */ /* pChart library inclusions */ include "../class/pDraw.class.php"; include "../class/pImage.class.php"; /* Create the pChart object */ $myPicture = new pImage(700, 230); /* Draw the background */ $Settings = array("R" => 170, "G" => 183, "B" => 87, "Dash" => 1, "DashR" => 190, "DashG" => 203, "DashB" => 107); $myPicture->drawFilledRectangle(0, 0, 700, 230, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, 700, 230, DIRECTION_VERTICAL, $Settings); $myPicture->drawGradientArea(0, 0, 700, 20, DIRECTION_VERTICAL, array("StartR" => 0, "StartG" => 0, "StartB" => 0, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 80)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 699, 229, array("R" => 0, "G" => 0, "B" => 0)); /* Write the picture title */ $myPicture->setFontProperties(array("FontName" => "../fonts/Silkscreen.ttf", "FontSize" => 6)); $myPicture->drawText(10, 13, "drawGradientArea() - Transparency & colors", array("R" => 255, "G" => 255, "B" => 255)); /* Draw a gradient area */ $GradientSettings = array("StartR" => 181, "StartG" => 209, "StartB" => 27, "Alpha" => 100, "Levels" => -50); $myPicture->drawGradientArea(20, 60, 400, 170, DIRECTION_HORIZONTAL, $GradientSettings); /* Draw a gradient area */ $GradientSettings = array("StartR" => 209, "StartG" => 134, "StartB" => 27, "Alpha" => 30, "Levels" => -50); $myPicture->drawGradientArea(30, 30, 200, 200, DIRECTION_VERTICAL, $GradientSettings); /* Draw a gradient area */ $GradientSettings = array("StartR" => 209, "StartG" => 31, "StartB" => 27, "Alpha" => 100, "Levels" => 50); $myPicture->drawGradientArea(480, 50, 650, 80, DIRECTION_HORIZONTAL, $GradientSettings); /* Draw a gradient area */ $GradientSettings = array("StartR" => 209, "StartG" => 125, "StartB" => 27, "Alpha" => 100, "Levels" => 50);
/* Create the scatter chart binding */ $myData->setScatterSerie("X1", "Y1", 0); $myData->setScatterSerie("X2", "Y2", 1); $myData->setScatterSerie("X3", "Y3", 2); $myData->setScatterSerie("X4", "Y4", 3); $myData->setScatterSerieDrawable(1, FALSE); $myData->setScatterSerieDrawable(2, FALSE); $myData->setScatterSerieDrawable(3, FALSE); /* Create the pChart object */ $myPicture = new pImage(800, 582, $myData); /* Draw the background */ $Settings = array("R" => 170, "G" => 183, "B" => 87, "Dash" => 1, "DashR" => 190, "DashG" => 203, "DashB" => 107); $myPicture->drawFilledRectangle(0, 0, 800, 582, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, 800, 582, DIRECTION_VERTICAL, $Settings); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 799, 581, array("R" => 0, "G" => 0, "B" => 0)); /* Write the title */ $myPicture->setFontProperties(array("FontName" => "../fonts/Forgotte.ttf", "FontSize" => 23)); $myPicture->drawText(55, 50, "Anscombe's Quartet drawing example", array("R" => 255, "G" => 255, "B" => 255)); $myPicture->drawText(55, 65, "This example demonstrate the importance of graphing data before analysing it. (The line of best fit is the same for all datasets)", array("FontSize" => 12, "R" => 255, "G" => 255, "B" => 255)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Create the Scatter chart object */ $myScatter = new pScatter($myPicture, $myData); /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw the 1st chart */ $myPicture->setGraphArea(56, 90, 380, 285); $myScatter->drawScatterScale(array("XMargin" => 5, "YMargin" => 5, "Floating" => TRUE, "DrawSubTicks" => TRUE));
/* CAT:Stacked chart */ /* pChart library inclusions */ include "../class/pData.class.php"; include "../class/pDraw.class.php"; include "../class/pImage.class.php"; /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints(array(4, VOID, VOID, 12, 8, 3), "Frontend #1"); $MyData->addPoints(array(3, 12, 15, 8, 5, 5), "Frontend #2"); $MyData->addPoints(array(2, 7, 5, 18, 19, 22), "Frontend #3"); $MyData->setAxisName(0, "Average Usage"); $MyData->addPoints(array("Jan", "Feb", "Mar", "Apr", "May", "Jun"), "Labels"); $MyData->setSerieDescription("Labels", "Months"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(700, 230, $MyData); $myPicture->drawGradientArea(0, 0, 700, 230, DIRECTION_VERTICAL, array("StartR" => 240, "StartG" => 240, "StartB" => 240, "EndR" => 180, "EndG" => 180, "EndB" => 180, "Alpha" => 100)); $myPicture->drawGradientArea(0, 0, 700, 230, DIRECTION_HORIZONTAL, array("StartR" => 240, "StartG" => 240, "StartB" => 240, "EndR" => 180, "EndG" => 180, "EndB" => 180, "Alpha" => 20)); /* Set the default font properties */ $myPicture->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Draw the scale and the chart */ $myPicture->setGraphArea(60, 20, 680, 190); $myPicture->drawScale(array("DrawSubTicks" => TRUE, "Mode" => SCALE_MODE_ADDALL_START0)); $myPicture->setShadow(FALSE); $myPicture->drawStackedBarChart(array("Surrounding" => -15, "InnerSurrounding" => 15)); /* Write a label */ $myPicture->writeLabel(array("Frontend #1", "Frontend #2", "Frontend #3"), 1, array("DrawVerticalLine" => TRUE)); /* Write the chart legend */ $myPicture->drawLegend(480, 210, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL)); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.drawStackedBarChart.shaded.png");
} } $myData = new pData(); $myData->addPoints($average, "Serie1"); $myData->setSerieDescription("Serie1", "Average"); $myData->setSerieOnAxis("Serie1", 0); $serieSettings = array("R" => 255, "G" => 250, "B" => 200); $myData->setPalette("Serie1", $serieSettings); $myData->addPoints($hour, "Absissa"); $myData->setAbscissa("Absissa"); $myData->setAxisPosition(0, AXIS_POSITION_LEFT); $myData->setAxisName(0, ""); $myData->setAxisUnit(0, ""); $myPicture = new pImage(160, 65, $myData, TRUE); $GradientSettings = array("StartR" => 050, "StartG" => 100, "StartB" => 150, "Alpha" => 50, "Levels" => -100); $myPicture->drawGradientArea(0, 0, 160, 80, DIRECTION_VERTICAL, $GradientSettings); $myPicture->setShadow(FALSE); $myPicture->setGraphArea(14, 7, 153, 60); $myPicture->setFontProperties(array("R" => 250, "G" => 250, "B" => 250, "FontName" => "../pchart/fonts/Forgotte.ttf", "FontSize" => 8)); $max = max($average) + 5; if ($max <= 0) { $max = 1; } if ($max > 64) { $max = 64; } $min = min($average) - 5; if ($min < 0) { $min = 0; } $Settings = array("Pos" => SCALE_POS_LEFTRIGHT, "Mode" => SCALE_MODE_MANUAL, "ManualScale" => array(0 => array("Min" => $min, "Max" => $max)), "LabelingMethod" => LABELING_ALL, "GridR" => 200, "GridG" => 200, "GridB" => 200, "GridAlpha" => 75, "TickR" => 240, "TickG" => 240, "TickB" => 240, "TickAlpha" => 75, "LabelRotation" => 0, "LabelSkip" => 1, "DrawXLines" => 0, "DrawSubTicks" => 1, "DrawYLines" => ALL, "SubTickR" => 210, "SubTickG" => 210, "SubTickB" => 210, "SubTickAlpha" => 75, "AxisR" => 210, "AxisG" => 210, "AxisB" => 210, "AxisAlpha" => 75);
$MyData->addPoints($tabNote, "ScoreB"); $MyData->setSerieDescription("ScoreA", "Moyenne classe"); $MyData->setSerieDescription("ScoreB", "Notes étudiant"); $MyData->setPalette("ScoreB", array("R" => 0, "G" => 0, "B" => 0, "Alpha" => 100)); $MyData->setPalette("ScoreA", array("R" => 224, "G" => 100, "B" => 46, "Alpha" => 100)); /* Create the X serie */ $MyData->addPoints($tabModule, "Labels"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(1000, 460, $MyData); /* Draw a solid background */ $Settings = array("R" => 255, "G" => 255, "B" => 255, "Dash" => 1, "DashR" => 255, "DashG" => 255, "DashB" => 255); $myPicture->drawFilledRectangle(0, 0, 1000, 460, $Settings); /* Overlay some gradient areas */ $Settings = array("StartR" => 255, "StartG" => 255, "StartB" => 255, "EndR" => 240, "EndG" => 255, "EndB" => 247, "Alpha" => 90); $myPicture->drawGradientArea(0, 0, 1000, 460, DIRECTION_VERTICAL, $Settings); $myPicture->drawGradientArea(0, 0, 1000, 20, DIRECTION_VERTICAL, array("StartR" => 255, "StartG" => 99, "StartB" => 71, "EndR" => 124, "EndG" => 122, "EndB" => 122, "Alpha" => 100)); /* Draw the border */ $myPicture->drawRectangle(0, 0, 999, 459, array("R" => 255, "G" => 99, "B" => 71)); /* Write the title */ $myPicture->setFontProperties(array("FontName" => "pChart2.1.4/fonts/arial.ttf", "FontSize" => 18)); $myPicture->drawText(10, 18, $var2["shortname"] . " " . date('d-m-Y'), array("R" => 255, "G" => 255, "B" => 255)); /* Define general drawing parameters */ $myPicture->setFontProperties(array("FontName" => "pChart2.1.4/fonts/arial.ttf", "FontSize" => 10, "R" => 80, "G" => 80, "B" => 80)); $myPicture->setShadow(TRUE, array("X" => 2, "Y" => 2, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Create the radar object */ $SplitChart = new pRadar(); /* Draw the 1st radar chart */ $myPicture->setGraphArea(20, 25, 995, 425); $Options = array("Layout" => RADAR_LAYOUT_STAR, "LabelPos" => RADAR_LABELS_HORIZONTAL, "BackgroundGradient" => array("StartR" => 255, "StartG" => 255, "StartB" => 255, "StartAlpha" => 100, "EndR" => 207, "EndG" => 227, "EndB" => 125, "EndAlpha" => 50)); $SplitChart->drawRadar($myPicture, $MyData, $Options);
function generate_graph_image($outputfile) { // Create Graph Dataset and set axis attributes $graphData = new pData(); $graphData->setAxisName(0, $this->ytitle_actual); $graphData->addPoints($this->xlabels, "xaxis"); $graphData->setSerieDescription("xaxis", "xaxis"); $graphData->setAbscissa("xaxis"); $graphData->setXAxisName("ooo"); // Add each series of plot values to dataset, but Reportico will // duplicate series were the same data are displayed in different forms // so only add each unique series once $seriesadded = array(); foreach ($this->plot as $k => $v) { $series = $v["name"] . $k; $graphData->addPoints($v["data"], $series); $graphData->setSerieDescription($series, $v["legend"]); } /* $graph->xgrid->SetColor($this->xgridcolor); $graph->ygrid->SetColor($this->ygridcolor); */ /* switch ( $this->xgriddisplay ) { case "all": $graph->xgrid->Show(true,true); break; case "major": $graph->xgrid->Show(true,false); break; case "minor": $graph->xgrid->Show(false,true); break; case "none": default: $graph->xgrid->Show(false,false); break; } switch ( $this->ygriddisplay ) { case "all": $graph->ygrid->Show(true,true); break; case "major": $graph->ygrid->Show(true,false); break; case "minor": $graph->ygrid->Show(false,true); break; case "none": default: $graph->ygrid->Show(false,false); break; } */ /* $graph->xaxis->SetFont($fontfamilies[$xaxisfont],$fontstyles[$xaxisfontstyle], $xaxisfontsize); $graph->xaxis->SetColor($xaxiscolor,$xaxisfontcolor); $graph->yaxis->SetFont($fontfamilies[$yaxisfont],$fontstyles[$yaxisfontstyle], $yaxisfontsize); $graph->yaxis->SetColor($yaxiscolor,$yaxisfontcolor); $graph->xaxis->title->SetFont($fontfamilies[$xtitlefont],$fontstyles[$xtitlefontstyle], $xtitlefontsize); $graph->xaxis->title->SetColor($xtitlecolor); $graph->yaxis->title->SetFont($fontfamilies[$ytitlefont],$fontstyles[$ytitlefontstyle], $ytitlefontsize); $graph->yaxis->title->SetColor($ytitlecolor); $graph->xaxis->SetLabelAngle(90); $graph->xaxis->SetLabelMargin(15); $graph->yaxis->SetLabelMargin(15); $graph->xaxis->SetTickLabels($xlabels); $graph->xaxis->SetTextLabelInterval($xticklabint); $graph->yaxis->SetTextLabelInterval($yticklabint); $graph->xaxis->SetTextTickInterval($xtickinterval); $graph->yaxis->SetTextTickInterval($ytickinterval); */ /* if ( $gridpos == "front" ) $graph->SetGridDepth(DEPTH_FRONT); */ // Display the graph /*?$graph->Stroke();*/ $this->apply_defaults_internal(); //echo "oo<BR>"; //echo "<PRE>"; //var_dump($graphData); //echo $this->width."<BR>"; //echo $this->height_actual."<BR>"; $graphImage = new pImage($this->width_actual, $this->height_actual, $graphData); /* Turn of Antialiasing */ $graphImage->Antialias = TRUE; // Add gradient fill from chosen background color to white $startgradient = $this->htmltorgb("#ffffff"); $color = $this->htmltorgb($this->graphcolor); $graphImage->drawGradientArea(0, 0, $this->width_actual, $this->height_actual, DIRECTION_VERTICAL, array("StartR" => $startgradient[0], "StartG" => $startgradient[1], "StartB" => $startgradient[2], "EndR" => $color[0], "EndG" => $color[1], "EndB" => $color[2], "Alpha" => 100)); /* Add a border to the picture */ $graphImage->drawRectangle(0, 0, $this->width_actual - 1, $this->height_actual - 1, array("R" => 200, "G" => 200, "B" => 200)); /* Set the title font and draw it */ $graphImage->setFontProperties(array("FontName" => PCHARTFONTS_DIR . $this->titlefont, "FontSize" => $this->titlefontsize)); $this->titlecolor = $this->htmltorgb($this->titlecolor); $graphImage->drawText(20, 30, $this->title_actual, array("R" => $this->titlecolor[0], "G" => $this->titlecolor[1], "B" => $this->titlecolor[2])); /* Set the default font from the X title font */ $graphImage->setFontProperties(array("FontName" => PCHARTFONTS_DIR . $this->xtitlefont, "FontSize" => $this->xtitlefontsize)); /* Define the chart area */ $graphImage->setGraphArea($this->marginleft, $this->margintop, $this->width_actual - $this->marginright, $this->height_actual - $this->marginbottom); //$scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE,"LabelRotation"=>30); //$graphImage->drawScale($scaleSettings); //$settings = array("Surrounding"=>-30,"InnerSurrounding"=>30); //$graphImage->drawBarChart($settings); //$graphImage->autoOutput("pictures/example.drawBarChart.simple.png"); //return; // Before plotting a series ensure they are all not drawable. /// Plot the chart data $stackeddrawn = false; $stackedexists = false; $barexists = false; foreach ($this->plot as $k => $v) { if ($v["type"] == "STACKEDBAR") { $stackedexists = true; } if ($v["type"] == "STACKEDBAR" || $v["type"] == "BAR") { $barexists = true; } } /* Draw the scale */ $scaleSettings = array("GridR" => 200, "GridG" => 200, "GridB" => 200, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE, "LabelRotation" => 30); // For stacked charts fix up the Max and Min values; if ($stackedexists) { $scaleMin = "Unknown"; $scaleMax = 0; foreach ($this->plot as $k => $v) { if ($v["type"] == "BAR" || $v["type"] == "STACKEDBAR") { $series = $v["name"] . $k; $min = $graphData->getMin($series); if ($scaleMin == "Unknown" || $min < $scaleMin) { $scaleMin = $min; } $scaleMax = $scaleMax + $graphData->getMax($series); } } if ($scaleMin > 0) { $scaleMin = 0; } $range = $scaleMax - $scaleMin; // Make scales based on 5% of the range of values $scaleMax = round($range * 0.05 + $scaleMax); if ($scaleMin < 0) { $scaleMin = $scaleMin - round($range * 0.05); } $AxisBoundaries = array(0 => array("Min" => $scaleMin, "Max" => $scaleMax)); $scaleSettings["Mode"] = SCALE_MODE_MANUAL; $scaleSettings["ManualScale"] = $AxisBoundaries; } else { if ($barexists) { $scaleMin = "Unknown"; $scaleMax = 0; foreach ($this->plot as $k => $v) { if ($v["type"] == "BAR" || $v["type"] == "STACKEDBAR") { $series = $v["name"] . $k; $min = $graphData->getMin($series); if ($scaleMin == "Unknown" || $min < $scaleMin) { $scaleMin = $min; } $max = $graphData->getMax($series); if ($scaleMax == "Unknown" || $max > $scaleMax) { $scaleMax = $max; } } } if ($scaleMin > 0) { $scaleMin = 0; } $range = $scaleMax - $scaleMin; // Make scales based on 5% of the range of values $scaleMax = round($range * 0.05 + $scaleMax); if ($scaleMin < 0) { $scaleMin = $scaleMin - round($range * 0.05); } $AxisBoundaries = array(0 => array("Min" => $scaleMin, "Max" => $scaleMax)); $scaleSettings["Mode"] = SCALE_MODE_MANUAL; $scaleSettings["ManualScale"] = $AxisBoundaries; } } $graphImage->drawScale($scaleSettings); // If there's a Pie chart we want to draw different legends $piechart = false; foreach ($this->plot as $k => $v) { foreach ($this->plot as $k1 => $v1) { $series = $v1["name"] . $k1; $graphData->setSerieDrawable($series, FALSE); } $series = $v["name"] . $k; $graphData->setSerieDrawable($series, TRUE); switch ($v["type"]) { case "PIE": $piechart = true; $pie = new pPie($graphImage, $graphData); //$pie->draw2DPie($width_actual / 2,$height_actual / 2,80,array("DrawLabels"=>TRUE,"LabelStacked"=>TRUE,"Border"=>TRUE)); $pie->draw2DPie($width_actual / 2, $height_actual / 2, 80, array("WriteValues" => PIE_VALUE_PERCENTAGE, "DataGapAngle" => 10, "DataGapRadius" => 6, "Border" => TRUE, "BorderR" => 255, "BorderG" => 255, "BorderB" => 255)); break; case "PIE3D": $piechart = true; $pie = new pPie($graphImage, $graphData); $pie->draw3DPie($this->width_actual / 2, $this->height_actual / 2, 80, array("SecondPass" => FALSE)); break; case "STACKEDBAR": case "BAR": if ($stackeddrawn) { break; } if ($barexists) { foreach ($this->plot as $k1 => $v1) { if ($v1["type"] == "BAR" || $v1["type"] == "STACKEDBAR") { $graphData->setSerieDrawable($v1["name"] . $k1, TRUE); } } } $stackeddrawn = true; $settings = array("Surrounding" => -30, "InnerSurrounding" => 30); if ($stackedexists) { $graphImage->drawStackedBarChart($settings); } else { $graphImage->drawBarChart($settings); } break; case "LINE": default: if (count($v["data"]) == 1) { $v["data"][] = 0; } $graphImage->drawLineChart($settings); break; } } $graphData->drawAll(); if ($piechart) { $pie->drawPieLegend($this->width_actual - 100, 30, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_VERTICAL)); } else { $graphImage->drawLegend($this->width_actual - 180, 22, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_VERTICAL)); } $graphImage->setShadow(TRUE, array("X" => 0, "Y" => 0, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); $graphImage->render($outputfile); return true; }
public static function tests_pchart3() { /* @ 700x230 Filled spline chart drawing example. */ /* pChart library inclusions */ include 'lib/pChart/class/pData.class'; include 'lib/pChart/class/pDraw.class'; include 'lib/pChart/class/pImage.class'; /* Create and populate the pData object */ $MyData = new pData(); $MyData->setAxisName(0, "Strength"); for ($i = 0; $i <= 720; $i = $i + 20) { $MyData->addPoints(cos(deg2rad($i)) * 100, "Probe 1"); $MyData->addPoints(cos(deg2rad($i + 90)) * 60, "Probe 2"); } /* Create the pChart object */ $myPicture = new pImage(847, 304, $MyData); $myPicture->drawGradientArea(0, 0, 847, 304, DIRECTION_VERTICAL, array("StartR" => 47, "StartG" => 47, "StartB" => 47, "EndR" => 17, "EndG" => 17, "EndB" => 17, "Alpha" => 100)); $myPicture->drawGradientArea(0, 250, 847, 304, DIRECTION_VERTICAL, array("StartR" => 47, "StartG" => 47, "StartB" => 47, "EndR" => 27, "EndG" => 27, "EndB" => 27, "Alpha" => 100)); $myPicture->drawLine(0, 249, 847, 249, array("R" => 0, "G" => 0, "B" => 0)); $myPicture->drawLine(0, 250, 847, 250, array("R" => 70, "G" => 70, "B" => 70)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 846, 303, array("R" => 204, "G" => 204, "B" => 204)); /* Write the picture title */ $myPicture->setFontProperties(array("FontName" => CINTIENT_INSTALL_DIR . "lib/pChart/fonts/pf_arma_five.ttf", "FontSize" => 6)); $myPicture->drawText(423, 14, "Cyclic magnetic field strength", array("R" => 255, "G" => 255, "B" => 255, "Align" => TEXT_ALIGN_MIDDLEMIDDLE)); /* Define the chart area */ $myPicture->setGraphArea(58, 27, 816, 228); /* Draw a rectangle */ $myPicture->drawFilledRectangle(58, 27, 816, 228, array("R" => 0, "G" => 0, "B" => 0, "Dash" => TRUE, "DashR" => 0, "DashG" => 51, "DashB" => 51, "BorderR" => 0, "BorderG" => 0, "BorderB" => 0)); /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 20)); /* Draw the scale */ $myPicture->setFontProperties(array("R" => 255, "G" => 255, "B" => 255)); $ScaleSettings = array("XMargin" => 4, "DrawSubTicks" => TRUE, "GridR" => 255, "GridG" => 255, "GridB" => 255, "AxisR" => 255, "AxisG" => 255, "AxisB" => 255, "GridAlpha" => 30, "CycleBackground" => TRUE); $myPicture->drawScale($ScaleSettings); /* Draw the spline chart */ $myPicture->drawFilledSplineChart(); /* Write the chart boundaries */ $BoundsSettings = array("MaxDisplayR" => 237, "MaxDisplayG" => 23, "MaxDisplayB" => 48, "MinDisplayR" => 23, "MinDisplayG" => 144, "MinDisplayB" => 237); $myPicture->writeBounds(BOUND_BOTH, $BoundsSettings); /* Write the 0 line */ $myPicture->drawThreshold(0, array("WriteCaption" => TRUE)); /* Write the chart legend */ $myPicture->setFontProperties(array("R" => 255, "G" => 255, "B" => 255)); $myPicture->drawLegend(560, 266, array("Style" => LEGEND_NOBORDER)); /* Write the 1st data series statistics */ $Settings = array("R" => 188, "G" => 224, "B" => 46, "Align" => TEXT_ALIGN_BOTTOMLEFT); $myPicture->drawText(620, 270, "Max : " . ceil($MyData->getMax("Probe 1")), $Settings); $myPicture->drawText(680, 270, "Min : " . ceil($MyData->getMin("Probe 1")), $Settings); $myPicture->drawText(740, 270, "Avg : " . ceil($MyData->getSerieAverage("Probe 1")), $Settings); /* Write the 2nd data series statistics */ $Settings = array("R" => 224, "G" => 100, "B" => 46, "Align" => TEXT_ALIGN_BOTTOMLEFT); $myPicture->drawText(620, 283, "Max : " . ceil($MyData->getMax("Probe 2")), $Settings); $myPicture->drawText(680, 283, "Min : " . ceil($MyData->getMin("Probe 2")), $Settings); $myPicture->drawText(740, 283, "Avg : " . ceil($MyData->getSerieAverage("Probe 2")), $Settings); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.drawFilledSplineChart.png"); }
protected function render_graph($title, pData $MyData, $zoom, $width = 0, $height = 0) { // Check graph size sanity $width = intval($width); if ($width <= 50 || $width > 4096) { $width = 700; } $height = intval($height); if ($height <= 60 || $height > 4096) { $height = 260; } $MyData->setSerieDescription("TimeStamp", "time"); $MyData->setAbscissa("TimeStamp"); switch ($zoom) { case 'hour': $MyData->setXAxisDisplay(AXIS_FORMAT_TIME, "H:00"); break; case 'year': $MyData->setXAxisDisplay(AXIS_FORMAT_DATE, "Y"); break; case 'month': $MyData->setXAxisDisplay(AXIS_FORMAT_DATE, "Y-m"); break; case 'day': $MyData->setXAxisDisplay(AXIS_FORMAT_DATE, "Y-m-d"); break; } /* Create the pChart object */ $myPicture = new pImage($width, $height, $MyData); /* Turn of Antialiasing */ $myPicture->Antialias = FALSE; /* Draw a background */ $Settings = array("R" => 90, "G" => 90, "B" => 90, "Dash" => 1, "DashR" => 120, "DashG" => 120, "DashB" => 120); $myPicture->drawFilledRectangle(0, 0, $width, $height, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 200, "StartG" => 200, "StartB" => 200, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, $width, $height, DIRECTION_VERTICAL, $Settings); $myPicture->drawGradientArea(0, 0, $width, $height, DIRECTION_HORIZONTAL, $Settings); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, $width - 1, $height - 1, array("R" => 0, "G" => 0, "B" => 0)); /* Write the chart title */ $myPicture->setFontProperties(array("FontName" => AmpConfig::get('prefix') . "/modules/pChart/fonts/Forgotte.ttf", "FontSize" => 11)); $myPicture->drawText(150, 35, $title, array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => AmpConfig::get('prefix') . "/modules/pChart/fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Define the chart area */ $myPicture->setGraphArea(60, 40, $width - 20, $height - 50); /* Draw the scale */ $scaleSettings = array("XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridR" => 200, "GridG" => 200, "GridB" => 200, "RemoveSkippedAxis" => TRUE, "DrawSubTicks" => FALSE, "Mode" => SCALE_MODE_START0, "LabelRotation" => 45, "LabelingMethod" => LABELING_DIFFERENT); $myPicture->drawScale($scaleSettings); /* Turn on Antialiasing */ $myPicture->Antialias = TRUE; /* Draw the line chart */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); $myPicture->drawLineChart(); /* Write a label over the chart */ $myPicture->writeLabel("Inbound", 720); /* Write the chart legend */ $myPicture->drawLegend(280, 20, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL)); header("Content-Disposition: filename=\"ampache-graph.png\""); /* Render the picture (choose the best way) */ $myPicture->autoOutput(); }
/* CAT:Bar Chart */ /* pChart library inclusions */ include "../class/pData.class.php"; include "../class/pDraw.class.php"; include "../class/pImage.class.php"; /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints(array(60, 30, 10), "Answers"); $MyData->setAxisName(0, "Answers (%)"); $MyData->addPoints(array("I do agree ", "I disagree ", "No opinion "), "Options"); $MyData->setAbscissa("Options"); /* Create the pChart object */ $myPicture = new pImage(500, 220, $MyData); /* Write the chart title */ $myPicture->setFontProperties(array("FontName" => "../fonts/Forgotte.ttf", "FontSize" => 15)); $myPicture->drawText(20, 34, "Q: Flexibility is a key point of this library", array("FontSize" => 20)); /* Define the default font */ $myPicture->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Set the graph area */ $myPicture->setGraphArea(70, 60, 480, 200); $myPicture->drawGradientArea(70, 60, 480, 200, DIRECTION_HORIZONTAL, array("StartR" => 200, "StartG" => 200, "StartB" => 200, "EndR" => 255, "EndG" => 255, "EndB" => 255, "Alpha" => 30)); /* Draw the chart scale */ $scaleSettings = array("AxisAlpha" => 10, "TickAlpha" => 10, "DrawXLines" => FALSE, "Mode" => SCALE_MODE_START0, "GridR" => 0, "GridG" => 0, "GridB" => 0, "GridAlpha" => 10, "Pos" => SCALE_POS_TOPBOTTOM); $myPicture->drawScale($scaleSettings); /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw the chart */ $myPicture->drawBarChart(array("DisplayValues" => TRUE, "DisplayShadow" => TRUE, "DisplayPos" => LABEL_POS_INSIDE, "Rounded" => TRUE, "Surrounding" => 30)); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.drawBarChart.poll.png");
<?php /* CAT:Misc */ /* pChart library inclusions */ include "../class/pDraw.class.php"; include "../class/pImage.class.php"; /* Create the pChart object */ $myPicture = new pImage(550, 175); /* Create a solid background */ $Settings = array("R" => 183, "G" => 161, "B" => 71, "Dash" => 1, "DashR" => 203, "DashG" => 181, "DashB" => 91); $myPicture->drawFilledRectangle(0, 0, 550, 175, $Settings); /* Do a gradient overlay */ $Settings = array("StartR" => 231, "StartG" => 228, "StartB" => 155, "EndR" => 138, "EndG" => 91, "EndB" => 10, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, 550, 175, DIRECTION_VERTICAL, $Settings); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => "../fonts/calibri.ttf", "FontSize" => 20)); /* Draw the text box */ $myPicture->setShadow(FALSE); $myPicture->drawFilledRectangle(141, 77, 393, 126, array("Alpha" => 20, "R" => 230, "G" => 230, "B" => 230)); $myPicture->drawRectangle(141, 77, 393, 126, array("R" => 50, "G" => 50, "B" => 50)); /* Write the text */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 20)); $TextSettings = array("R" => 201, "G" => 230, "B" => 40, "FontSize" => 40); $myPicture->drawText(144, 125, "My text box", $TextSettings); /* Prepare and draw the markers */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 20)); $MyMarkerSettings = array("R" => 255, "G" => 0, "B" => 0, "BorderR" => 0, "BorderB" => 0, "BorderG" => 0, "Size" => 4); $myPicture->drawRectangleMarker(141, 77, $MyMarkerSettings); $myPicture->drawRectangleMarker(141, 101, $MyMarkerSettings); $myPicture->drawRectangleMarker(141, 126, $MyMarkerSettings); $myPicture->drawRectangleMarker(260, 77, $MyMarkerSettings);
public function actionGraph2() { /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints(array(13251, 4118, 3087, 1460, 1248, 156, 26, 9, 8), "Hits"); $MyData->setAxisName(0, "Hits"); $MyData->addPoints(array("Firefox", "Chrome", "Internet Explorer", "Opera", "Safari", "Mozilla", "SeaMonkey", "Camino", "Lunascape"), "Browsers"); $MyData->setSerieDescription("Browsers", "Browsers"); $MyData->setAbscissa("Browsers"); /* Create the pChart object */ $myPicture = new pImage(500, 500, $MyData); $myPicture->drawGradientArea(0, 0, 500, 500, DIRECTION_VERTICAL, array("StartR" => 240, "StartG" => 240, "StartB" => 240, "EndR" => 180, "EndG" => 180, "EndB" => 180, "Alpha" => 100)); $myPicture->drawGradientArea(0, 0, 500, 500, DIRECTION_HORIZONTAL, array("StartR" => 240, "StartG" => 240, "StartB" => 240, "EndR" => 180, "EndG" => 180, "EndB" => 180, "Alpha" => 20)); $myPicture->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Draw the chart scale */ $myPicture->setGraphArea(100, 30, 480, 480); $myPicture->drawScale(array("CycleBackground" => TRUE, "DrawSubTicks" => TRUE, "GridR" => 0, "GridG" => 0, "GridB" => 0, "GridAlpha" => 10, "Pos" => SCALE_POS_TOPBOTTOM)); // /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw the chart */ $myPicture->drawBarChart(array("DisplayPos" => LABEL_POS_INSIDE, "DisplayValues" => TRUE, "Rounded" => TRUE, "Surrounding" => 30)); /* Write the legend */ $myPicture->drawLegend(570, 215, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL)); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.drawBarChart.vertical.png"); }
/** * Helper method to draw bar graph * parameters have same meaning as displayGraph's parameters */ function displayBarGraph($fid, $frid, $labelElement, $dataElement, $operation, $graphOptions) { // getting data from DB if (is_int($frid) && $frid > 0) { $dbData = getData($frid, $fid); } else { $dbData = getData("", $fid); } foreach ($dbData as $entry) { // mayor - OR array of mayors if there's more than one in the dataset, depending on the one-to-may in a relationship $dataRawValue = display($entry, $dataElement); // city_name; $labelRawValue = display($entry, $labelElement); if (!is_array($dataRawValue) && $dataRawValue) { $dataRawValue = array($dataRawValue); } if (!is_array($labelRawValue)) { $labelRawValue = array($labelRawValue); } foreach ($labelRawValue as $thisLabelValue) { if ($dataPoints[$thisLabelValue]) { $dataPoints[$thisLabelValue] = array_merge($dataPoints[$thisLabelValue], $dataRawValue); } else { $dataPoints[$thisLabelValue] = $dataRawValue; } } } // Oct 29 Update for column heading for graphs: $elementHandler = xoops_getmodulehandler('elements', 'formulize'); $elementObject = $elementHandler->get($labelElement); $labelElement = $elementObject->getVar('ele_colhead') ? $elementObject->getVar('ele_colhead') : printSmart($elementObject->getVar('ele_caption')); $elementObject = $elementHandler->get($dataElement); $dataElement = $elementObject->getVar('ele_colhead') ? $elementObject->getVar('ele_colhead') : printSmart($elementObject->getVar('ele_caption')); // end of Update switch ($operation) { case "count": // count the values in each label of the array foreach (array_keys($dataPoints) as $key) { if (!empty($dataPoints[$key])) { $dataPoints[$key] = count($dataPoints[$key]); } else { $dataPoints[$key] = 0; } } if ($labelElement == $dataElement) { $dataElement = "count of " . $labelElement; } else { $dataElement = "count of " . $dataElement; } break; case "sum": case "display": // TODO: Check this! foreach ($dataPoints as $thisLabel => $theseValues) { $dataPoints[$thisLabel] = array_sum($theseValues); } $dataElement = ($operation == "display" ? "number of " : "sum of ") . $dataElement; break; case "count-unique": foreach ($dataPoints as $thisLabel => $theseValues) { $dataPoints[$thisLabel] = count(array_unique($theseValues)); } if ($dataElement == $labelElement) { $dataElement = "count of unique " . $labelElement; } else { $dataElement = "count of unique " . $dataElement; } break; default: echo "Sorry, the operation \"{$operation}\" for Bar graph is not supported at the moment!"; return; } // print("dataElement: ".$dataElement." "); // print("labelElement: ".$labelElement." "); // process the graph options // these defaults will be used, unless overwritten by values from the $graphOptions array $sizeMultiplier = sizeof(array_keys($dataPoints)); $BAR_THICKNESS = 40; $IMAGE_WIDTH = 600; $IMAGE_DEFAULT_WIDTH = $IMAGE_WIDTH; if ($sizeMultiplier > 1) { $IMAGE_HEIGHT = $BAR_THICKNESS * $sizeMultiplier / 0.5; } else { $IMAGE_HEIGHT = $BAR_THICKNESS * 4; } $IMAGE_DEFAULT_HEIGHT = $IMAGE_HEIGHT; $IMAGE_ORIENTATION = "vertical"; $BACKGROUND_R = 141; $BACKGROUND_G = 189; $BACKGROUND_B = 225; $BARCOLOR_R = 143; $BARCOLOR_G = 190; $BARCOLOR_B = 88; if (sizeof($graphOptions) > 0) { foreach ($graphOptions as $graphoption => $value) { switch ($graphoption) { case "width": $IMAGE_WIDTH = $value; break; case "height": $IMAGE_HEIGHT = $value; break; case "orientation": $IMAGE_ORIENTATION = $value; if ($IMAGE_ORIENTATION == "horizontal") { if ($IMAGE_HEIGHT == $IMAGE_DEFAULT_HEIGHT) { $IMAGE_HEIGHT = 500; } else { if ($IMAGE_WIDTH == $IMAGE_DEFAULT_WIDTH) { $IMAGE_WIDTH = $BAR_THICKNESS * $sizeMultiplier / 0.5; } } } break; case "backgroundcolor": // print_r($value); foreach ($value as $RGB => $colorvalue) { switch ($RGB) { case "R": $BACKGROUND_R = $colorvalue; break; case "G": $BACKGROUND_G = $colorvalue; break; case "B": $BACKGROUND_B = $colorvalue; break; default: echo "Please follow the correct format of backgroundcolor."; break; } } break; case "barcolor": // print_r($value); foreach ($value as $RGB => $colorvalue) { switch ($RGB) { case "R": $BARCOLOR_R = $colorvalue; break; case "G": $BARCOLOR_G = $colorvalue; break; case "B": $BARCOLOR_B = $colorvalue; break; default: echo "Please follow the correct format of backgroundcolor."; break; } } break; default: echo "Sorry, the graph option \"{$graphoption}\" for Bar graph is not supported at the moment!<br>"; break; } } } // reset width/height of the image in case the label is too long if (strlen($labelElement) * 4.5 >= $IMAGE_HEIGHT and $IMAGE_ORIENTATION == "vertical") { if ($IMAGE_HEIGHT == $IMAGE_DEFAULT_HEIGHT) { $IMAGE_HEIGHT = strlen($labelElement) * 5; } else { $labelElement = substr($labelElement, 0, $IMAGE_HEIGHT / 4.5 - 3) . "..."; } } elseif (strlen($dataElement) * 4.5 >= $IMAGE_HEIGHT and $IMAGE_ORIENTATION == "horizontal") { if ($IMAGE_HEIGHT == $IMAGE_DEFAULT_HEIGHT) { $IMAGE_HEIGHT = strlen($dataElement) * 5; } else { $dataElement = substr($dataElement, 0, $IMAGE_HEIGHT / 4.5 - 3) . "..."; } } elseif (strlen($labelElement) * 4.5 >= $IMAGE_WIDTH and $IMAGE_ORIENTATION == "horizontal") { if ($IMAGE_WIDTH == $IMAGE_DEFAULT_WIDTH) { $IMAGE_WIDTH = strlen($labelElement) * 5; } else { $labelElement = substr($labelElement, 0, $IMAGE_HEIGHT / 4.5 - 3) . "..."; } } elseif (strlen($dataElement) * 4.5 >= $IMAGE_WIDTH and $IMAGE_ORIENTATION == "vertical") { if ($IMAGE_WIDTH == $IMAGE_DEFAULT_WIDTH) { $IMAGE_WIDTH = strlen($dataElement) * 5; } else { $dataElement = substr($dataElement, 0, $IMAGE_HEIGHT / 4.5 - 3) . "..."; } } // Code straightly copied from pChart documentation to draw the graph $myData = new pData(); $myData->addPoints(array_values($dataPoints), $dataElement); $myData->setAxisName(0, $dataElement); $myData->addPoints(array_keys($dataPoints), $labelElement); $myData->setSerieDescription($labelElement, $labelElement); $myData->setAbscissa($labelElement); $myData->setAbscissaName($labelElement); // $myData -> setAxisDisplay(0, AXIS_FORMAT_CUSTOM, "YAxisFormat"); /* Create the pChart object */ $myPicture = new pImage($IMAGE_WIDTH, $IMAGE_HEIGHT, $myData); $myPicture->drawGradientArea(0, 0, $IMAGE_WIDTH, $IMAGE_HEIGHT, DIRECTION_VERTICAL, array("StartR" => $BACKGROUND_R, "StartG" => $BACKGROUND_G, "StartB" => $BACKGROUND_B, "EndR" => $BACKGROUND_R, "EndG" => $BACKGROUND_G, "EndB" => $BACKGROUND_B, "Alpha" => 100)); $myPicture->drawGradientArea(0, 0, 500, 500, DIRECTION_HORIZONTAL, array("StartR" => 240, "StartG" => 240, "StartB" => 240, "EndR" => 180, "EndG" => 180, "EndB" => 180, "Alpha" => 30)); $myPicture->setFontProperties(array("FontName" => "modules/formulize/libraries/pChart/fonts/arial.ttf", "FontSize" => 8)); $paddingtoLeft = $IMAGE_WIDTH * 0.15; $paddingtoTop = $IMAGE_HEIGHT * 0.2; if ($paddingtoTop > 50) { $paddingtoTop = 50; } /* Draw the chart scale */ $myPicture->setGraphArea($paddingtoLeft, $paddingtoTop, $IMAGE_WIDTH * 0.9, $IMAGE_HEIGHT * 0.88); if ($IMAGE_ORIENTATION == "vertical") { $myPicture->drawScale(array("CycleBackground" => TRUE, "DrawSubTicks" => TRUE, "GridR" => 0, "GridG" => 0, "GridB" => 0, "GridAlpha" => 10, "Pos" => SCALE_POS_TOPBOTTOM, "Mode" => SCALE_MODE_ADDALL_START0, "Decimal" => 0, "MinDivHeight" => 50)); } else { $myPicture->drawScale(array("CycleBackground" => TRUE, "DrawSubTicks" => TRUE, "GridR" => 0, "GridG" => 0, "GridB" => 0, "GridAlpha" => 10, "Mode" => SCALE_MODE_ADDALL_START0, "Decimal" => 0, "MinDivHeight" => 50)); } /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); $Palette = array("0" => array("R" => $BARCOLOR_R, "G" => $BARCOLOR_G, "B" => $BARCOLOR_B, "Alpha" => 100)); for ($i = 1; $i < $sizeMultiplier; $i++) { $Palette[$i] = array("R" => $BARCOLOR_R, "G" => $BARCOLOR_G, "B" => $BARCOLOR_B, "Alpha" => 100); } // print_r($Palette); $myPicture->drawBarChart(array("OverrideColors" => $Palette)); /* Draw the chart */ $myPicture->drawBarChart(array("DisplayPos" => LABEL_POS_INSIDE, "DisplayValues" => TRUE, "Rounded" => TRUE, "Surrounding" => 30, "OverrideColors" => $Palette)); renderGraph($myPicture, $fid, $frid, $labelElement, $dataElement, $operation, $graphOptions); return; }
/** * eval_ccpc_genGraphPie - Génère un graphique de type camenbert sous forme d'image au format PNG * * @category : eval_ccpc_functions * @param array $data Données à partir desquelles le graphique est généré * @return string URL de l'image générée * * @Author Ali Bellamine * * Structure de $data :<br> * ['data'][nom du label] => (int) Valeur liée au label<br> * ['settings']['height'] => (int) Hauteur du graphique (en px)<br> * ['settings']['width'] => (int) Largeur du graphique (en px) * */ function eval_ccpc_genGraphPie($data) { // On vérifie les données fournit if (isset($data) && isset($data['data']) && count($data['data']) > 0) { // On récupère le hash de $data $hash = md5(json_encode($data)); // Chemin du fichier $filePath = PLUGIN_PATH . 'cache/' . $hash . '.png'; $filePathURI = ROOT . 'evaluations/ccpc/cache/' . $hash . '.png'; // Si le hash existe déjà : on renvoie le lien de l'image // sinon en crée le graphique if (is_file($filePath)) { return $filePathURI; } else { // On crée l'image /* On inclut la librairie */ require_once PLUGIN_PATH . 'core/pChart2.1.4/class/pData.class.php'; require_once PLUGIN_PATH . 'core/pChart2.1.4/class/pDraw.class.php'; require_once PLUGIN_PATH . 'core/pChart2.1.4/class/pImage.class.php'; /* On crée l'objet pData */ // Préparation des données $tempDataArray = array(); // Contient les données chiffrés de chaque part du camenbert $tempLegendArray = array(); // Contient la légend chaque part de camenbert foreach ($data['data'] as $tempDataLegend => $tempDataValue) { $tempLegendArray[] = $tempDataLegend; if (isset($tempDataValue) && is_numeric($tempDataValue)) { $tempDataArray[] = $tempDataValue; } else { return FALSE; } } $MyData = new pData(); $MyData->addPoints($tempDataArray, 'Values'); $MyData->addPoints($tempLegendArray, 'Label'); $MyData->setAbscissa("Label"); /* On crée l'objet pChart */ if (isset($data['settings']['width'])) { $width = $data['settings']['width']; } else { $width = 600; } if (isset($data['settings']['height'])) { $height = $data['settings']['height']; } else { $height = 300; } $myPicture = new pImage($width, $height, $MyData); $myPicture->setFontProperties(array("FontName" => PLUGIN_PATH . 'core/pChart2.1.4/fonts/verdana.ttf', "FontSize" => 8, "R" => 223, "G" => 223, "B" => 223)); /* Set the graph area */ $myPicture->setGraphArea(10, 20, $width - 20, $height - 20); $myPicture->drawGradientArea(10, 20, $width - 20, $height - 20, DIRECTION_HORIZONTAL, array("StartR" => 200, "StartG" => 200, "StartB" => 200, "EndR" => 255, "EndG" => 255, "EndB" => 255, "Alpha" => 30)); /* Draw the chart scale */ $scaleSettings = array("RemoveXAxis" => TRUE, "AxisAlpha" => 10, "TickAlpha" => 10, "DrawXLines" => FALSE, "Mode" => SCALE_MODE_START0, "GridR" => 0, "GridG" => 0, "GridB" => 0, "GridAlpha" => 10, "Pos" => SCALE_POS_TOPBOTTOM); $myPicture->drawScale($scaleSettings); /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw the chart */ $myPicture->drawBarChartAli(array("DisplayValues" => TRUE, "DisplayShadow" => TRUE, "DisplayPos" => LABEL_POS_INSIDE, "Rounded" => TRUE, "Surrounding" => 30)); $myPicture->render($filePath); return $filePathURI; } } else { return FALSE; } }
function PlotLine($rowX, $rowY, $name, $ch) { include $_SERVER['DOCUMENT_ROOT'] . "/TBSIM/Lib/class/pData.class.php"; include $_SERVER['DOCUMENT_ROOT'] . "/TBSIM/Lib/class/pDraw.class.php"; include $_SERVER['DOCUMENT_ROOT'] . "/TBSIM/Lib/class/pImage.class.php"; include $_SERVER['DOCUMENT_ROOT'] . "/TBSIM/Lib/class/pPie.class.php"; //************************************** $myData = new pData(); $myData->addPoints($rowX, "Serie1"); $myData->setSerieDescription("Serie1", $name); //$myData->setSerieOnAxis("Serie1",0); $myData->addPoints($rowY, "Absissa"); $myData->setAbscissa("Absissa"); //$myData->addPoints(array("January","February","March","April","May","June","July","August"),"Absissa"); //$myData->setAbscissa("Absissa"); $myData->setAxisPosition(0, AXIS_POSITION_LEFT); //$myData->setAxisName(0,"1st axis"); $myData->setAxisUnit(0, ""); $myPicture = new pImage(700, 230, $myData); $Settings = array("R" => 240, "G" => 242, "B" => 241, "Dash" => 1, "DashR" => 260, "DashG" => 262, "DashB" => 261); $myPicture->drawFilledRectangle(0, 0, 700, 230, $Settings); $Settings = array("StartR" => 252, "StartG" => 255, "StartB" => 254, "EndR" => 252, "EndG" => 255, "EndB" => 254, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, 700, 230, DIRECTION_VERTICAL, $Settings); $myPicture->drawRectangle(0, 0, 699, 229, array("R" => 0, "G" => 0, "B" => 0)); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 50, "G" => 50, "B" => 50, "Alpha" => 20)); $myPicture->setFontProperties(array("FontName" => "fonts/Forgotte.ttf", "FontSize" => 14)); $TextSettings = array("Align" => TEXT_ALIGN_MIDDLEMIDDLE, "R" => 252, "G" => 252, "B" => 252, "DrawBox" => 1, "BoxAlpha" => 30); //$myPicture->drawText(350,25,$name,$TextSettings); $myPicture->setShadow(FALSE); $myPicture->setGraphArea(50, 50, 675, 190); //$myPicture->setFontProperties(array("R"=>0,"G"=>0,"B"=>0,"FontName"=>"fonts/pf_arma_five.ttf","FontSize"=>6)); $Settings = array("Pos" => SCALE_POS_LEFTRIGHT, "Mode" => SCALE_MODE_FLOATING, "LabelingMethod" => LABELING_ALL, "GridR" => 255, "GridG" => 255, "GridB" => 255, "GridAlpha" => 50, "TickR" => 0, "TickG" => 0, "TickB" => 0, "TickAlpha" => 50, "LabelRotation" => 0, "CycleBackground" => 1, "DrawXLines" => 1, "DrawSubTicks" => 1, "SubTickR" => 255, "SubTickG" => 0, "SubTickB" => 0, "SubTickAlpha" => 50, "DrawYLines" => ALL); $myPicture->drawScale($Settings); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 50, "G" => 50, "B" => 50, "Alpha" => 10)); $Config = ""; if ($ch == 1) { $myPicture->drawSplineChart($Config); } if ($ch == 2) { $myPicture->drawBarChart($Config); } if ($ch == 3) { $myPicture->drawLineChart($Config); } if ($ch == 4) { $myPicture->drawPlotChart($Config); } if ($ch == 5) { $myPicture->drawStepChart($Config); } if ($ch == 6) { $myPicture->drawAreaChart($Config); } if ($ch == 7) { $myPicture->drawFilledSplineChart($Config); } if ($ch == 8) { $myPicture->drawFilledStepChart($Config); } if ($ch == 9) { $myPicture->drawStackedAreaChart($Config); } $Config = array("FontR" => 0, "FontG" => 0, "FontB" => 0, "FontName" => "fonts/pf_arma_five.ttf", "FontSize" => 6, "Margin" => 6, "Alpha" => 30, "BoxSize" => 5, "Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL); $myPicture->drawLegend(563, 16, $Config); $myPicture->stroke(); }
/* CAT:Spline chart */ /* pChart library inclusions */ include "../class/pData.class.php"; include "../class/pDraw.class.php"; include "../class/pImage.class.php"; /* Create and populate the pData object */ $MyData = new pData(); $MyData->setAxisName(0, "Strength"); for ($i = 0; $i <= 720; $i = $i + 20) { $MyData->addPoints(cos(deg2rad($i)) * 100, "Probe 1"); $MyData->addPoints(cos(deg2rad($i + 90)) * 60, "Probe 2"); } /* Create the pChart object */ $myPicture = new pImage(847, 304, $MyData); $myPicture->drawGradientArea(0, 0, 847, 304, DIRECTION_VERTICAL, array("StartR" => 47, "StartG" => 47, "StartB" => 47, "EndR" => 17, "EndG" => 17, "EndB" => 17, "Alpha" => 100)); $myPicture->drawGradientArea(0, 250, 847, 304, DIRECTION_VERTICAL, array("StartR" => 47, "StartG" => 47, "StartB" => 47, "EndR" => 27, "EndG" => 27, "EndB" => 27, "Alpha" => 100)); $myPicture->drawLine(0, 249, 847, 249, array("R" => 0, "G" => 0, "B" => 0)); $myPicture->drawLine(0, 250, 847, 250, array("R" => 70, "G" => 70, "B" => 70)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 846, 303, array("R" => 204, "G" => 204, "B" => 204)); /* Write the picture title */ $myPicture->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6)); $myPicture->drawText(423, 14, "Cyclic magnetic field strength", array("R" => 255, "G" => 255, "B" => 255, "Align" => TEXT_ALIGN_MIDDLEMIDDLE)); /* Define the chart area */ $myPicture->setGraphArea(58, 27, 816, 228); /* Draw a rectangle */ $myPicture->drawFilledRectangle(58, 27, 816, 228, array("R" => 0, "G" => 0, "B" => 0, "Dash" => TRUE, "DashR" => 0, "DashG" => 51, "DashB" => 51, "BorderR" => 0, "BorderG" => 0, "BorderB" => 0)); /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 20)); /* Draw the scale */
/* Create the pChart object */ $myPicture = new pImage(700, 230, $MyData); /* Retrieve the image map */ if (isset($_GET["ImageMap"]) || isset($_POST["ImageMap"])) { $myPicture->dumpImageMap("ImageMapSplineChart", IMAGE_MAP_STORAGE_FILE, "SplineChart", "../tmp"); } /* Set the image map name */ $myPicture->initialiseImageMap("ImageMapSplineChart", IMAGE_MAP_STORAGE_FILE, "SplineChart", "../tmp"); /* Turn of Antialiasing */ $myPicture->Antialias = FALSE; /* Draw the background */ $Settings = array("R" => 170, "G" => 183, "B" => 87, "Dash" => 1, "DashR" => 190, "DashG" => 203, "DashB" => 107); $myPicture->drawFilledRectangle(0, 0, 700, 230, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, 700, 230, DIRECTION_VERTICAL, $Settings); /* 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" => FONT_PATH . "/Forgotte.ttf", "FontSize" => 11)); $myPicture->drawText(150, 35, "Average temperature", array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => FONT_PATH . "/pf_arma_five.ttf", "FontSize" => 6)); /* Define the chart area */ $myPicture->setGraphArea(60, 40, 650, 200); /* Draw the scale */ $scaleSettings = array("XMargin" => 10, "YMargin" => 10, "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 */
/** * 绘制图表并生成图片 * @method drawChart * @return [type] [description] */ protected function drawChart($data_arr, $lab_arr, $pic_name) { /* pChart library inclusions */ include "libs/pChart2.1.4/class/pData.class.php"; include "libs/pChart2.1.4/class/pDraw.class.php"; include "libs/pChart2.1.4/class/pPie.class.php"; include "libs/pChart2.1.4/class/pImage.class.php"; /* pData object creation */ $MyData = new \pData(); /* Data definition */ $MyData->addPoints($data_arr, "Value"); /* Labels definition */ $MyData->addPoints($lab_arr, "Legend"); $MyData->setAbscissa("Legend"); /* Create the pChart object */ $myPicture = new \pImage(500, 150, $MyData); /* Draw a gradient background */ $myPicture->drawGradientArea(0, 0, 500, 150, DIRECTION_HORIZONTAL, array("StartR" => 220, "StartG" => 220, "StartB" => 220, "EndR" => 180, "EndG" => 180, "EndB" => 180, "Alpha" => 100)); /* Add a border to the picture */ // $myPicture->drawRectangle(0,0,399,149,array("R"=>0,"G"=>0,"B"=>0)); /* Create the pPie object */ $PieChart = new \pPie($myPicture, $MyData); /* Enable shadow computing */ $myPicture->setShadow(FALSE); /* Set the default font properties */ $myPicture->setFontProperties(array("FontName" => __DIR__ . "/libs/pChart2.1.4/fonts/msyh.ttf", "FontSize" => 10, "R" => 80, "G" => 80, "B" => 80)); /* Draw a splitted pie chart */ $PieChart->draw3DPie(250, 100, array("Radius" => 80, "DrawLabels" => TRUE, "DataGapAngle" => 10, "DataGapRadius" => 6, "Border" => FALSE)); /* Render the picture (choose the best way) */ $myPicture->autoOutput(public_path() . '/pictures/' . $pic_name); }
$myData->setAxisUnit(0, ""); $myData->addPoints(array("1er Trimestre", "2ndo Trimestre", "3er Trimestre"), "Absissa"); $myData->setAbscissa("Absissa"); //$myData->addPoints(array("1","2","3"),"Labels"); //$myData->setSerieDescription("Labels","Evaluaciones"); //$myData->setAbscissa("Labels"); $myPicture = new pImage($anchura, $altura, $myData); $Settings = array("R" => 170, "G" => 183, "B" => 87, "Dash" => 1, "DashR" => 190, "DashG" => 203, "DashB" => 107); $myPicture->drawFilledRectangle(0, 0, $anchura, $altura, $Settings); if ($g_enabled == "on") { list($StartR, $StartG, $StartB) = extractColors($g_gradient_start); list($EndR, $EndG, $EndB) = extractColors($g_gradient_end); $Settings = array("StartR" => $StartR, "StartG" => $StartG, "StartB" => $StartB, "EndR" => $EndR, "EndG" => $EndG, "EndB" => $EndB, "Alpha" => 50); //$Settings = array("StartR"=>125, "StartG"=>92, "StartB"=>231, "EndR"=>1, "EndG"=>138, "EndB"=>68, "Alpha"=>50); if ($g_direction == "vertical") { $myPicture->drawGradientArea(0, 0, $anchura, $altura, DIRECTION_VERTICAL, $Settings); } else { $myPicture->drawGradientArea(0, 0, $anchura, $altura, DIRECTION_HORIZONTAL, $Settings); } } else { $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, $anchura, $altura, DIRECTION_VERTICAL, $Settings); } $myPicture->drawRectangle(0, 0, $anchura - 1, $altura - 1, array("R" => 0, "G" => 0, "B" => 0)); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 50, "G" => 50, "B" => 50, "Alpha" => 20)); $myPicture->setFontProperties(array("FontName" => "fonts/Forgotte.ttf", "FontSize" => 14)); $TextSettings = array("Align" => TEXT_ALIGN_MIDDLEMIDDLE, "R" => 255, "G" => 255, "B" => 255); $myPicture->drawText($anchura / 2, 25, $title, $TextSettings); $myPicture->setFontProperties(array("FontName" => "fonts/Forgotte.ttf", "FontSize" => 10)); $TextSettings = array("Align" => TEXT_ALIGN_MIDDLEMIDDLE, "R" => 0, "G" => 0, "B" => 0); $myPicture->drawText($anchura / 2, $altura - 20, "Evaluaciones", $TextSettings);
if (isset($_GET["w"])) { $W = $_GET["w"]; } $myPicture = new pImage($W, 400, $MyData); /* Turn of Antialiasing */ $myPicture->Antialias = FALSE; //$myPicture->drawGraphAreaGradient(132,153,172,50,TARGET_BACKGROUND); /* Add a border to the picture */ //$myPicture->drawRectangle(0,0,1023,399,array("R"=>0,"G"=>0,"B"=>0)); //$myPicture->drawGradientArea(0,0,1024,400, DIRECTION_HORIZONTAL); //$myPicture->drawFilledRectangle(0,0,1024,400,array("R"=>47,"G"=>126,"B"=>216,"Surrounding"=>-200,"Alpha"=>80)); /* Write the chart title */ $Settings = array("R" => 179, "G" => 217, "B" => 91, "Dash" => 1, "DashR" => 199, "DashG" => 237, "DashB" => 111); $myPicture->drawFilledRectangle(0, 0, $W, 400, $Settings); $Settings = array("StartR" => 194, "StartG" => 231, "StartB" => 44, "EndR" => 43, "EndG" => 107, "EndB" => 58, "Alpha" => 50); $myPicture->drawGradientArea(60, 40, $W - 20, 380, DIRECTION_VERTICAL, $Settings); //$myPicture->drawGradientArea(60,40,1010,380,DIRECTION_VERTICAL,array("StartR"=>0,"StartG"=>0,"StartB"=>0,"EndR"=>50,"EndG"=>50,"EndB"=>50,"Alpha"=>100)); $myPicture->setFontProperties(array("FontName" => "pChart/fonts/Forgotte.ttf", "FontSize" => 11)); $myPicture->drawText(150, 35, "Average temperature", array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => "pChart/fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Define the chart area */ $myPicture->setGraphArea(60, 40, $W - 20, 380); /* Draw the scale */ $scaleSettings = array("LabelSkip" => round(count($data1) / 10), "DrawXLines" => TRUE, "XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridR" => 200, "GridG" => 200, "GridB" => 200, "DrawSubTicks" => FALSE, "CycleBackground" => TRUE); $myPicture->drawScale($scaleSettings); /* Turn on Antialiasing */ $myPicture->Antialias = TRUE; /* Draw the line chart */ $myPicture->drawsplineChart(); $myPicture->drawPlotChart();
$MyData->addPoints(log($i + 1) * 10, "Bounds 1"); $MyData->addPoints(log($i + 3) * 10 + rand(0, 2) - 1, "Probe 1"); $MyData->addPoints(log($i + 6) * 10, "Bounds 2"); $MyData->addPoints($i * 10, "Labels"); } $MyData->setAxisName(0, "Size (cm)"); $MyData->setSerieDescription("Labels", "Months"); $MyData->setAbscissa("Labels"); $MyData->setAbscissaName("Time (years)"); /* Create the pChart object */ $myPicture = new pImage(700, 230, $MyData); /* Turn of Antialiasing */ $myPicture->Antialias = FALSE; /* Draw the background and the border */ $myPicture->drawFilledRectangle(0, 0, 699, 229, array("R" => 200, "G" => 200, "B" => 200)); $myPicture->drawGradientArea(0, 0, 700, 230, DIRECTION_VERTICAL, array("StartR" => 220, "StartG" => 220, "StartB" => 220, "EndR" => 100, "EndG" => 100, "EndB" => 100, "Alpha" => 30)); $myPicture->drawRectangle(0, 0, 699, 229, array("R" => 0, "G" => 0, "B" => 0)); /* Write the chart title */ $myPicture->setFontProperties(array("FontName" => "../fonts/Forgotte.ttf", "FontSize" => 11)); $myPicture->drawText(150, 35, "Size by time generations", array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Define the chart area */ $myPicture->setGraphArea(40, 40, 680, 200); /* Draw the scale */ $scaleSettings = array("LabelSkip" => 4, "XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridAlpha" => 30, "GridR" => 140, "GridG" => 140, "GridB" => 140, "DrawSubTicks" => TRUE); $myPicture->drawScale($scaleSettings); /* Turn on Antialiasing */ $myPicture->Antialias = TRUE; /* Draw the line chart */ $myPicture->drawZoneChart("Bounds 1", "Bounds 2", array("LineAlpha" => 100, "AreaR" => 230, "AreaG" => 230, "AreaB" => 230, "AreaAlpha" => 20, "LineTicks" => 3));
function buildgraph($MyData, $xsize, $ysize, $title, $minscale, $maxscale, $date, $type, $imagefilename) { //include("../cfg/nmcgraph_cfg.php"); /* Create and populate the pData object */ $MyData = new pData(); load_nmc_data($MyData, $date, $type, $minscale, $maxscale); //var_dump($MyData); //echo $minscale." ".$maxscale; exit; //printf("minscale: $minscale maxscale: $maxscale <br />\n"); //buildgraph( $MyData, $xsize, $ysize, $title ); $MyData->setAxisDisplay(0, AXIS_FORMAT_CURRENCY, "฿"); //$MyData->addPoints(array("8h","10h","12h","14h","16h","18h"),"Time"); //$MyData->setAbscissa("Months"); //$MyData->setAxisName(0,"Price in BTC"); //$MyData->setSerieDescription("Time","Hour of the day"); /* Create the pChart object */ $myPicture = new pImage($xsize, $ysize, $MyData); /* Draw the background */ $Settings = array("R" => 170, "G" => 183, "B" => 87, "Dash" => 1, "DashR" => 190, "DashG" => 203, "DashB" => 107); $myPicture->drawFilledRectangle(0, 0, $xsize, $ysize, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, $xsize, $ysize, DIRECTION_VERTICAL, $Settings); /* Draw the border */ $myPicture->drawRectangle(0, 0, $xsize - 1, $ysize - 1, array("R" => 0, "G" => 0, "B" => 0)); /* Write the title */ $myPicture->setFontProperties(array("FontName" => dirname(__FILE__) . "/../../fonts/verdana.ttf", "FontSize" => 9)); $myPicture->drawText(70, 45, $title, array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMLEFT)); /* Draw the 1st scale */ $myPicture->setGraphArea(70, 60, $xsize - 40, $ysize - 30); $myPicture->drawFilledRectangle(70, 60, $xsize - 40, $ysize - 30, array("R" => 255, "G" => 255, "B" => 255, "Surrounding" => -200, "Alpha" => 10)); // Y scale $AxisBoundariesY = array(0 => array("Min" => $minscale, "Max" => $maxscale)); $myPicture->drawScale(array("DrawSubTicks" => TRUE, "CycleBackground" => TRUE, "Mode" => SCALE_MODE_MANUAL, "ManualScale" => $AxisBoundariesY)); //X scale //$AxisBoundariesX = array("01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23"); //$MyData->setSerieDescription("Labels","Months"); //$MyData->setAbscissa("Labels"); $MyData->setXAxisDisplay(0, AXIS_FORMAT_TIME, "H"); //$myPicture->drawScale(array("DrawXLines"=>array(0))); /* Draw the 1st stock chart */ $mystockChart = new pStock($myPicture, $MyData); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 30)); $mystockChart->drawStockChart(); /* Reset the display mode because of the graph small size */ //$MyData->setAxisDisplay(0,AXIS_FORMAT_DEFAULT); /* Draw the 2nd scale */ //$myPicture->setShadow(FALSE); //$myPicture->setGraphArea(500,60,670,190); //$myPicture->drawFilledRectangle(500,60,670,190,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10)); //$myPicture->drawScale(array("Pos"=>SCALE_POS_TOPBOTTOM,"DrawSubTicks"=>TRUE)); /* Draw the 2nd stock chart */ //$mystockChart = new pStock($myPicture,$MyData); //$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>30)); //$mystockChart->drawStockChart(); /* Render the picture (choose the best way) */ //$myPicture->autoOutput("pictures/example.drawStockChart.png"); $myPicture->render($imagefilename); $current_time = time(); $graphgendate = $current_time; return $graphgendate; }
protected function drawBarChart(ChartDataset $CDs) { if (!extension_loaded("gd") && !extension_loaded("gd2")) { /* Extension not loaded */ // NO BARCHARTS AND ERRORS FOR YOU! return; } /* Create and populate the pData object */ $MyData = new pData(); if (empty($CDs->data)) { return; } //print_r($CDs->data); foreach ($CDs->data as $points) { //print_r($points); $MyData->addPoints($points["points"], $points["label"]); } $MyData->setAxisName(0, "Amount Sold"); $MyData->setSerieDescription($points["label"], $points["label"]); $MyData->setAbscissa($points["label"]); /* Create the pChart object */ $myPicture = new pImage(1000, 230, $MyData); // the horrible way to add fonts is just one bunch of f****d up shit, not making sense. bullshit parameters and paths. //$myPicture->setFontProperties(array("FontName"=>"Bedizen")); $myPicture->setFontProperties(array("FontName" => "pChart2.1.4//fonts/calibri.ttf", "FontSize" => 11)); //print_r(is_file("C:/xampp_jan2015/htdocs/hackerbar/web/fonts/GeosansLight.ttf")); /* Turn of Antialiasing */ $myPicture->Antialias = false; /* Add a border to the picture */ $myPicture->drawGradientArea(0, 0, 1000, 230, DIRECTION_VERTICAL, array("StartR" => 240, "StartG" => 240, "StartB" => 240, "EndR" => 180, "EndG" => 180, "EndB" => 180, "Alpha" => 100)); $myPicture->drawGradientArea(0, 0, 1000, 230, DIRECTION_HORIZONTAL, array("StartR" => 240, "StartG" => 240, "StartB" => 240, "EndR" => 180, "EndG" => 180, "EndB" => 180, "Alpha" => 20)); $myPicture->drawRectangle(0, 0, 999, 229, array("R" => 0, "G" => 0, "B" => 0)); /* Set the default font */ //$myPicture->setFontProperties(array("FontName"=>"../fonts/pf_arma_five.ttf","FontSize"=>6)); /* Define the chart area */ $myPicture->setGraphArea(60, 40, 850, 200); /* Draw the scale */ $scaleSettings = array("GridR" => 200, "GridG" => 200, "GridB" => 200, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE); $myPicture->drawScale($scaleSettings); /* Write the chart legend */ $myPicture->drawLegend(860, 25, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_VERTICAL)); /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw the chart */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); $settings = array("Surrounding" => -30, "InnerSurrounding" => 30); $myPicture->drawBarChart($settings); /* Render the picture (choose the best way) */ $myPicture->autoOutput("images/barcharts/" . $points["label"] . ".png"); //$myPicture->auto $myPicture->render("myfile.png"); }
//echo 'returning from cached file'; $graphgendate = $file_time; } else { /* Create and populate the pData object */ $MyData = new pData(); load_nmc_data($MyData, $date, $type, $minscale, $maxscale, $interval); // now we have the data, lets build the image $MyData->setAxisDisplay(0, AXIS_FORMAT_CURRENCY, "฿"); //$MyData->addPoints(array("8h","10h","12h","14h","16h","18h"),"Time"); $MyData->setAbscissa("Time"); //$MyData->setAxisName(0,"Price in BTC"); //$MyData->setSerieDescription("Time","Hour of the day"); /* Create the pChart object */ $myPicture = new pImage($xsize, $ysize, $MyData); $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, $xsize, $ysize, DIRECTION_VERTICAL, $Settings); /* Draw the border */ $myPicture->drawRectangle(0, 0, $xsize - 1, $ysize - 1, array("R" => 0, "G" => 0, "B" => 0)); /* Write the title */ $myPicture->setFontProperties(array("FontName" => "../../fonts/verdana.ttf", "FontSize" => 9)); $myPicture->drawText(70, 45, $title, array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMLEFT)); /* Draw the 1st scale */ $myPicture->setGraphArea(70, 60, $xsize - 40, $ysize - 30); $myPicture->drawFilledRectangle(70, 60, $xsize - 40, $ysize - 30, array("R" => 255, "G" => 255, "B" => 255, "Surrounding" => -200, "Alpha" => 10)); $AxisBoundaries = array(0 => array("Min" => $minscale, "Max" => $maxscale)); $myPicture->drawScale(array("DrawSubTicks" => TRUE, "CycleBackground" => TRUE, "Mode" => SCALE_MODE_MANUAL, "ManualScale" => $AxisBoundaries)); /* Draw the 1st stock chart */ $mystockChart = new pStock($myPicture, $MyData); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 30)); $mystockChart->drawStockChart(); /* Reset the display mode because of the graph small size */
<?php /* CAT:Drawing */ /* pChart library inclusions */ include "../class/pDraw.class.php"; include "../class/pImage.class.php"; /* Create the pChart object */ $myPicture = new pImage(700, 230); /* Draw the background */ $Settings = array("R" => 170, "G" => 183, "B" => 87, "Dash" => 1, "DashR" => 190, "DashG" => 203, "DashB" => 107); $myPicture->drawFilledRectangle(0, 0, 700, 230, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 219, "StartG" => 231, "StartB" => 139, "EndR" => 1, "EndG" => 138, "EndB" => 68, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, 700, 230, DIRECTION_VERTICAL, $Settings); $myPicture->drawGradientArea(0, 0, 700, 20, DIRECTION_VERTICAL, array("StartR" => 0, "StartG" => 0, "StartB" => 0, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 80)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 699, 229, array("R" => 0, "G" => 0, "B" => 0)); /* Write the picture title */ $myPicture->setFontProperties(array("FontName" => "../fonts/Silkscreen.ttf", "FontSize" => 6)); $myPicture->drawText(10, 13, "drawRectangle() - Transparency & colors", array("R" => 255, "G" => 255, "B" => 255)); /* Enable shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 20)); /* Draw a rectangle */ $RectangleSettings = array("R" => 181, "G" => 209, "B" => 27, "Alpha" => 100); $myPicture->drawRectangle(20, 60, 400, 170, $RectangleSettings); /* Draw a rectangle */ $RectangleSettings = array("R" => 209, "G" => 134, "B" => 27, "Alpha" => 30); $myPicture->drawRectangle(30, 30, 200, 200, $RectangleSettings); /* Draw a rectangle */ $RectangleSettings = array("R" => 209, "G" => 31, "B" => 27, "Alpha" => 100); $myPicture->drawRectangle(480, 50, 650, 80, $RectangleSettings);
} /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints($room_value, "Capacite electrique disponible (kW)"); $MyData->setAxisName(0, "Capacite electrique disponible (kW)"); $MyData->addPoints($room_name, "Salles"); $MyData->setAbscissa("Salles"); /* Create the pChart object */ $myPicture = new pImage(65 * $nbr_room + 65, 330, $MyData); // Taille dynamique de l'image en fonction du nombre de réponse SQL /* Draw the background */ $Settings = array("R" => 39, "G" => 43, "B" => 48, "Dash" => 1, "DashR" => 122, "DashG" => 130, "DashB" => 136); $myPicture->drawFilledRectangle(0, 0, 65 * $nbr_room + 65, 330, $Settings); /* Overlay with a gradient */ $Settings = array("StartR" => 39, "StartG" => 43, "StartB" => 48, "EndR" => 122, "EndG" => 130, "EndB" => 136, "Alpha" => 50); $myPicture->drawGradientArea(0, 0, 65 * $nbr_room + 65, 330, DIRECTION_VERTICAL, $Settings); $myPicture->drawGradientArea(0, 0, 65 * $nbr_room + 65, 20, DIRECTION_VERTICAL, array("StartR" => 0, "StartG" => 0, "StartB" => 0, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 80)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 65 * $nbr_room + 64, 329, array("R" => 0, "G" => 0, "B" => 0)); /* Write the chart title */ $myPicture->setFontProperties(array("FontName" => "pChart/fonts/Silkscreen.ttf", "FontSize" => 6, "R" => 255, "G" => 255, "B" => 255)); $myPicture->drawText(10, 13, "Capacite electrique disponible (kW)", array("R" => 255, "G" => 255, "B" => 255)); /* Define the default font */ $myPicture->setFontProperties(array("FontName" => "pChart/fonts/verdana.ttf", "FontSize" => 10)); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 20)); /* Set the graph area */ $myPicture->setGraphArea(50, 40, 65 * $nbr_room + 35, 290); $myPicture->drawGradientArea(50, 40, 65 * $nbr_room + 35, 290, DIRECTION_VERTICAL, array("StartR" => 200, "StartG" => 200, "StartB" => 200, "EndR" => 255, "EndG" => 255, "EndB" => 255, "Alpha" => 30)); /* Draw the chart scale */ $scaleSettings = array("AxisAlpha" => 10, "TickAlpha" => 10, "DrawXLines" => FALSE, "Mode" => SCALE_MODE_START0, "GridR" => 0, "GridG" => 0, "GridB" => 0, "GridAlpha" => 10); $myPicture->drawScale($scaleSettings);