function createGraphe($vData, $hData, $titre, $vLabel, $hLabel) { $MyData = new pData(); /*Je présente ma série de données à utiliser pour le graphique et je détermine le titre de l'axe vertical avec setAxisName*/ $MyData->addPoints($vData, "vertical"); $MyData->setSerieWeight("vertical", 2); $MyData->setAxisName(0, $vLabel); /*J'indique les données horizontales du graphique. Il doit y avoir le même nombre que pour ma série de données précédentes (logique)*/ $MyData->addPoints($hData, "horizontal"); $MyData->setSerieDescription("horizontal", $hLabel); $MyData->setAbscissa("horizontal"); $MyData->setPalette("vertical", array("R" => 255, "G" => 0, "B" => 0)); /* Je crée l'image qui contiendra mon graphique précédemment crée */ $myPicture = new pImage(900, 400, $MyData); /* Je crée une bordure à mon image */ $myPicture->drawRectangle(0, 0, 899, 399, array("R" => 0, "G" => 0, "B" => 0)); /* J'indique le titre de mon graphique, son positionnement sur l'image et sa police */ $myPicture->setFontProperties(array("FontName" => "./pChart2.1.4/fonts/Forgotte.ttf", "FontSize" => 11)); $myPicture->drawText(200, 25, $titre, array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE)); /* Je choisi la font de mon graphique */ $myPicture->setFontProperties(array("FontName" => "./pChart2.1.4/fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Je détermine la taille du graphique et son emplacement dans l'image */ $myPicture->setGraphArea(60, 40, 800, 380); /* Paramètres pour dessiner le graphique à partir des deux abscisses */ $scaleSettings = array("XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridR" => 200, "GridG" => 200, "GridB" => 200, "DrawSubTicks" => FALSE, "CycleBackground" => TRUE, "LabelSkip" => 4); $myPicture->drawScale($scaleSettings); /* Je dessine mon graphique en fonction des paramètres précédents */ $myPicture->drawAreaChart(); $myPicture->drawLineChart(); /* J'indique le chemin où je souhaite que mon image soit créée */ $myPicture->Render("img/" . $titre . ".png"); }
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 index() { /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints(getGenders($this->db), "ScoreA"); $MyData->setSerieDescription("ScoreA", "Application A"); /* Define the absissa serie */ $MyData->addPoints(array("Female", "Male"), "Labels"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(240, 180, $MyData, TRUE); /* Set the default font properties */ $myPicture->setFontProperties(array("FontName" => pClass . "fonts/Forgotte.ttf", "FontSize" => 10, "R" => 80, "G" => 80, "B" => 80)); /* Create the pPie object */ $PieChart = new pPie($myPicture, $MyData); /* Enable shadow computing */ $myPicture->setShadow(TRUE, array("X" => 3, "Y" => 3, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw a splitted pie chart */ $PieChart->draw3DPie(120, 90, array("Radius" => 100, "DataGapAngle" => 12, "DataGapRadius" => 10, "Border" => TRUE)); /* Write the legend box */ $myPicture->setFontProperties(array("FontName" => pClass . "fonts/Silkscreen.ttf", "FontSize" => 6, "R" => 0, "G" => 0, "B" => 0)); $PieChart->drawPieLegend(140, 160, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL)); /* Render the picture (choose the best way) */ $myPicture->stroke(); //$myPicture->autoOutput("pictures/example.draw3DPie.transparent.png"); }
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(); }
/** * Sets fonts and sizes * * @param pData $myData People's Years data * * @return pImage the Chart Image Box */ protected static function listadoPersonasXedadConfigChart($myData) { /* Create the pChart object */ $myPicture = new pImage(300, 230, $myData); /* Write the picture title */ $myPicture->setFontProperties(array("FontName" => PathsUtils::$chartFontsDir . "/Silkscreen.ttf", "FontSize" => 6)); $myPicture->drawText(10, 13, "Recuento de Años de nacimiento", array("R" => 255, "G" => 255, "B" => 255)); /* Set the default font properties */ $myPicture->setFontProperties(array("FontName" => PathsUtils::$chartFontsDir . "/Forgotte.ttf", "FontSize" => 10, "R" => 80, "G" => 80, "B" => 80)); 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 plot($lift) { $MyData = new pData(); $positivelift = array(); $negativelift = array(); foreach ($lift as $heading => $fpm) { if ($fpm > 0) { $positivelift[$heading] = $fpm; $negativelift[$heading] = 0; } else { $negativelift[$heading] = -$fpm; $positivelift[$heading] = 0; } } $MyData->addPoints($positivelift, "ScoreA"); // green $MyData->addPoints($negativelift, "ScoreB"); // red $MyData->addPoints(array_keys($lift), "Coord"); $MyData->setAbscissa("Coord"); $myPicture = new pImage(700, 700, $MyData); $myPicture->setFontProperties(array("FontName" => "../fonts/Forgotte.ttf", "FontSize" => 10, "R" => 80, "G" => 80, "B" => 80)); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); $SplitChart = new pRadar(); $myPicture->setGraphArea(10, 10, 690, 690); $Options = array("LabelPos" => RADAR_LABELS_HORIZONTAL, "BackgroundGradient" => array("StartR" => 255, "StartG" => 255, "StartB" => 255, "StartAlpha" => 50, "EndR" => 32, "EndG" => 109, "EndB" => 174, "EndAlpha" => 30), "DrawPoly" => TRUE, "PolyAlpha" => 50, "FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6); $SplitChart->drawPolar($myPicture, $MyData, $Options); $myPicture->autoOutput("lift.png"); }
/** * Set the font for the image object. * @param string $font * @param int $fontSize */ protected function setFont($font = null, $fontSize = null) { $prop = array(); $fontFile = null; if ($font !== null) { $fontFile = I2CE::getFileSearch()->search("PCHART_FONTS", $font . ".ttf"); } if ($fontFile === null) { I2CE::getConfig()->setIfIsSet($font, "/modules/pChart/defaults/font"); if (!$font) { $font = "calibri"; } $fontFile = I2CE::getFileSearch()->search("PCHART_FONTS", $font . ".ttf"); if ($fontFile === null) { I2CE::raiseError("Couldn't find font {$font} for pChart."); return; } } $prop['FontName'] = $fontFile; if ($fontSize === null) { I2CE::getConfig()->setIfIsSet($fontSize, "/modules/pChart/defaults/font_size"); if (!$fontSize) { $fontSize = 10; } } $prop['FontSize'] = $fontSize; $this->chartImage->setFontProperties($prop); }
/** * Gera um gráfico de linha * @param array $dados Array no formato array('Label' => array(pontos)) * @param string $tipo linha ou barra */ function grafico($dados, $tipo = 'linha') { require_once 'exemplos/graficos/pChart/class/pDraw.class.php'; require_once 'exemplos/graficos/pChart/class/pImage.class.php'; require_once 'exemplos/graficos/pChart/class/pData.class.php'; // precisamos ter dados para montar os gráficos $DataSet = new pData(); // Adicionando os pontos de um gráfico de linha // horas de trabalho na semana foreach ($dados as $label => $pontos) { $DataSet->addPoints($pontos, $label); } $DataSet->setAxisName(0, 'Horas'); // unidade $DataSet->setAxisUnit(0, 'h'); $settings = array("R" => 229, "G" => 11, "B" => 11, "Alpha" => 80); $DataSet->setPalette("Joao", $settings); // Labels $DataSet->addPoints(array('Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'), 'Dias'); $DataSet->setSerieDescription('Dias', 'Dias da Semana'); $DataSet->setAbscissa('Dias'); $Graph = new pImage(700, 230, $DataSet); $Graph->setFontProperties(array('FontName' => 'exemplos/graficos/pChart/fonts/verdana.ttf', 'FontSize' => 8)); $Graph->setGraphArea(50, 40, 670, 190); $scale = array('GridR' => 150, 'GridG' => 150, 'GridB' => 150, 'DrawSubTicks' => true, 'CycleBackground' => true); $Graph->drawScale($scale); if ($tipo == 'linha') { $Graph->drawLineChart(); } else { $Graph->drawBarChart(); } $Graph->drawLegend(540, 25, array('Style' => LEGEND_ROUND, 'Mode' => LEGEND_VERTICAL)); $Graph->drawText(60, 20, "Horas Trabalhadas"); $Graph->autoOutput(); }
protected function buildPicture(pData $data, $options = array()) { $title_height = isset($options['title_height']) ? $options['title_height'] : 50; $ga_height = isset($options['chart_area_height']) ? $options['chart_area_height'] : 310; $x_label_height = isset($options['x_label_height']) ? $options['x_label_height'] : 50; $height = $title_height + $ga_height + $x_label_height; $width = 900; // Color scheme from kuler "Q10 Chart" $myPicture = new pImage($width, $height, $data); $myPicture->drawRectangle(0, 0, $width - 1, $height - 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" => sfConfig::get('sf_web_dir') . "/fonts/Ubuntu-R.ttf", "FontSize" => 14)); $TextSettings = array("Align" => TEXT_ALIGN_MIDDLEMIDDLE, "R" => 40, "G" => 40, "B" => 43); $myPicture->drawText($width / 2, $title_height / 2, $this->getOption('title'), $TextSettings); $myPicture->setShadow(FALSE); $myPicture->setGraphArea(90, 50, 649, $ga_height); $myPicture->setFontProperties(array("R" => 40, "G" => 40, "B" => 43, "FontName" => sfConfig::get('sf_web_dir') . "/fonts/DejaVuSans-ExtraLight.ttf", "FontSize" => 9)); return $myPicture; }
function showTimeline($ticket, $params = array()) { global $CFG_GLPI; /* Create and populate the pData object */ $MyData = new pData(); /* Create the pChart object */ $myPicture = new pImage(820, 29, $MyData); /* Create the pIndicator object */ $Indicator = new pIndicator($myPicture); $myPicture->setFontProperties(array("FontName" => GLPI_ROOT . "/plugins/timelineticket/lib/pChart2.1.4/fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Define the indicator sections */ $IndicatorSections = array(); $_usersfinished = array(); $a_users_list = array(); $IndicatorSections = PluginTimelineticketToolbox::getDetails($ticket, 'user'); foreach ($IndicatorSections as $users_id => $data) { $a_users_list[$users_id] = $users_id; $a_end = end($data); if ($a_end['R'] == 235 && $a_end['G'] == 235 && $a_end['B'] == 235) { $_usersfinished[$users_id] = true; } else { $_usersfinished[$users_id] = false; } } echo "<tr>"; echo "<th colspan='2'>"; if (count($a_users_list) > 1) { _e('Technicians in charge of the ticket', 'timelineticket'); } else { _e('Technician in charge of the ticket'); } echo "</th>"; echo "</tr>"; foreach ($IndicatorSections as $users_id => $array) { echo "<tr class='tab_bg_2'>"; echo "<td width='100'>"; echo getUsername($users_id); echo "</td>"; echo "<td>"; if ($ticket->fields['status'] != Ticket::CLOSED && $_usersfinished[$users_id] != 0) { $IndicatorSettings = array("Values" => array(100, 201), "CaptionPosition" => INDICATOR_CAPTION_BOTTOM, "CaptionLayout" => INDICATOR_CAPTION_DEFAULT, "CaptionR" => 0, "CaptionG" => 0, "CaptionB" => 0, "DrawLeftHead" => false, "DrawRightHead" => true, "ValueDisplay" => false, "IndicatorSections" => $array, "SectionsMargin" => 0); $Indicator->draw(2, 2, 805, 25, $IndicatorSettings); } else { $IndicatorSettings = array("Values" => array(100, 201), "CaptionPosition" => INDICATOR_CAPTION_BOTTOM, "CaptionLayout" => INDICATOR_CAPTION_DEFAULT, "CaptionR" => 0, "CaptionG" => 0, "CaptionB" => 0, "DrawLeftHead" => false, "DrawRightHead" => false, "ValueDisplay" => false, "IndicatorSections" => $array, "SectionsMargin" => 0); $Indicator->draw(2, 2, 814, 25, $IndicatorSettings); } $filename = $uid = Session::getLoginUserID(false) . "_testuser" . $users_id; $myPicture->render(GLPI_GRAPH_DIR . "/" . $filename . ".png"); echo "<img src='" . $CFG_GLPI['root_doc'] . "/front/graph.send.php?file=" . $filename . ".png'><br/>"; echo "</td>"; echo "</tr>"; } }
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"); }
function RenderValueChart(&$debug2) { $conditions = [["BETWEEN 1 AND 19"], ["BETWEEN 20 AND 49"], ["BETWEEN 50 AND 99"], ["BETWEEN 100 AND 199"], ["BETWEEN 200 AND 299"], ["BETWEEN 300 AND 499"], ["BETWEEN 500 AND 999"], ["> 999"]]; $label = ["1-19", "20-49", "50-99", "100-199", "200-299", "300-499", "500-999", ">1000"]; coinValueCount($conditions, $array_result); /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints($array_result, "Värde (kr)"); $MyData->setAxisName(0, "Antal"); $MyData->addPoints($label, "Months"); $MyData->setSerieDescription("Months", "Month"); $MyData->setAbscissa("Months"); /* Create the cache object */ $myCache1 = new pCache(array("CacheFolder" => PCHART_PATH . "/class/cache")); /* Compute the hash linked to the chart data */ $ChartHash1 = $myCache1->getHash($MyData); /* Test if we got this hash in our cache already */ if ($myCache1->isInCache($ChartHash1)) { /* If we have it, get the picture from the cache! */ $myCache1->saveFromCache($ChartHash1, WWW_PATH . "/tmp/valuechart.png"); $debug2 = "Old image"; } else { /* Create the pChart object */ $myPicture = new pImage(700, 400, $MyData); /* Turn of Antialiasing */ $myPicture->Antialias = TRUE; /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 699, 399, array("R" => 0, "G" => 0, "B" => 0)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => PCHART_PATH . "/fonts/Forgotte.ttf", "FontSize" => 15, "R" => 80, "G" => 80, "B" => 80)); /* Define the chart area */ $myPicture->setGraphArea(60, 40, 650, 350); /* Draw the scale */ $scaleSettings = array("GridR" => 200, "GridG" => 200, "GridB" => 200, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE, "Mode" => SCALE_MODE_START0); $myPicture->drawScale($scaleSettings); /* Write the chart legend */ $myPicture->drawLegend(340, 12, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL)); /* 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("Gradient" => TRUE, "GradientMode" => GRADIENT_EFFECT_CAN, "DisplayPos" => LABEL_POS_INSIDE, "DisplayValues" => TRUE, "DisplayR" => 255, "DisplayG" => 255, "DisplayB" => 255, "DisplayShadow" => TRUE, "Surrounding" => 10); $myPicture->drawBarChart(); /* Push the rendered picture to the cache */ $myCache1->writeToCache($ChartHash1, $myPicture); /* Render the picture (choose the best way) */ $myPicture->Render(WWW_PATH . "/tmp/valuechart.png"); $debug2 = "Picture rendered"; } }
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"); }
public function drawCompetencyExpertsRadar($img, $points, $competences, $roles, $skale, $palettes) { $MyData = new \pData(); /*$palettes = array( array("R"=>84,"G"=>85,"B"=>86), array("R"=>21,"G"=>101,"B"=>112), array("R"=>223,"G"=>72,"B"=>11), array("R"=>10,"G"=>120,"B"=>40), array("R"=>200,"G"=>150,"B"=>20), );*/ /*$palettes = array( 0 => array('R' => 191, 'G' => 191, 'B' => 191), 1 => array('R' => 226, 'G' => 24, 'B' => 54), 2 => array('R' => 244, 'G' => 122, 'B' => 32), 3 => array('R' => 146, 'G' => 0, 'B' => 61), 4 => array('R' => 91, 'G' => 74, 'B' => 63), 5 => array('R' => 55, 'G' => 96, 'B' => 146), 6 => array('R' => 119, 'G' => 147, 'B' => 60), );*/ $i = 0; foreach ($points as $roleID => $data) { $MyData->addPoints($data, "Score" . $roleID); $MyData->setSerieDescription("Score" . $roleID, $roles[$roleID]['name']); $MyData->setPalette("Score" . $roleID, $palettes[$i++]); } $labels = array(); foreach ($competences as $competency) { $labels[] = strpos($competency, ' ') !== false ? $this->divideString($competency) : $competency; } $MyData->addPoints($labels, "Labels"); $MyData->setAbscissa("Labels"); $myPicture = new \pImage(460 * 1.53, 330 * 1.53, $MyData); $myPicture->setFontProperties(array("FontName" => dirname(__FILE__) . '/fonts/calibri.ttf', "FontSize" => round(7 * 1.53), "R" => 80, "G" => 80, "B" => 80)); /* Create the pRadar object */ $SplitChart = new \pRadar(); /* Draw a radar chart */ $myPicture->setGraphArea(70 * 1.53, 30 * 1.53, 340 * 1.53, 300 * 1.53); $Options = array("Layout" => RADAR_LAYOUT_STAR, 'SegmentHeight' => ceil($skale['max'] / 4), "FontName" => dirname(__FILE__) . '/fonts/calibri.ttf', "FontSize" => round(7 * 1.53), 'LabelPos' => RADAR_LABELS_HORIZONTAL, 'LineWidth' => 3); $SplitChart->drawRadar($myPicture, $MyData, $Options); $myPicture->render($img); }
function PlotPie($rowA, $rowB, $name, $cch) { 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($rowA, "ScoreA"); $MyData->setSerieDescription("ScoreA", "Application A"); /* Define the absissa serie */ $MyData->addPoints($rowB, "Labels"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(700, 630, $MyData); $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, 690); //$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)); /* Create the pPie object */ $PieChart = new pPie($myPicture, $MyData); /* Draw an AA pie chart */ if ($cch == 11) { $PieChart->draw2DPie(160, 140, array("DrawLabels" => TRUE, "LabelStacked" => TRUE, "Border" => TRUE)); } if ($cch == 12) { $PieChart->draw2DRing(160, 140, array("WriteValues" => TRUE, "ValueR" => 255, "ValueG" => 255, "ValueB" => 255, "Border" => TRUE)); } if ($cch == 13) { $PieChart->draw3DPie(160, 140, array("Radius" => 70, "DrawLabels" => TRUE, "LabelStacked" => TRUE, "Border" => TRUE)); } /* Write the legend box */ $myPicture->setShadow(FALSE); $PieChart->drawPieLegend(15, 40, array("Alpha" => 20)); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.draw2DPie.labels.png"); }
public function createCharts($lenght, $width = 1000, $height = 400, $statisticsUncategorized, $params, $options) { //print_r($params); //print_r($options); $year = date('Y'); $month = date('m'); $y = date('Y', strtotime('-' . ($lenght - 1) . ' month')); $m = date('m', strtotime('-' . ($lenght - 1) . ' month')); $user = Zend_Registry::get('User'); $invoicesDb = new Sales_Model_DbTable_Invoice(); $creditnotesDb = new Sales_Model_DbTable_Creditnote(); $turnover = array(); $turnoverCategories = array(); while ($y <= $year) { while ($m) { if ($y < $year || $m <= $month) { //Get invoices $ym = str_pad($m, 2, '0', STR_PAD_LEFT); $query = 'i.state = 105'; $query .= " AND (invoicedate BETWEEN '" . $y . "-" . $ym . "-" . "01' AND '" . $y . "-" . $ym . "-" . "31')"; $query .= ' AND i.clientid = ' . $user['clientid']; $query .= ' AND c.clientid = ' . $user['clientid']; if ($params['catid']) { $query = Zend_Controller_Action_HelperBroker::getStaticHelper('Query')->getQueryCategory($query, $params['catid'], $options['categories'], 'c'); } if ($params['country']) { $query = Zend_Controller_Action_HelperBroker::getStaticHelper('Query')->getQueryCountry($query, $params['country'], 'i'); } $invoices = $invoicesDb->fetchAll($invoicesDb->select()->from(array('i' => 'invoice'))->join(array('c' => 'contact'), 'i.contactid = c.id', array('catid'))->where($query ? $query : 1)->setIntegrityCheck(false)); //Get credit notes $ym = str_pad($m, 2, '0', STR_PAD_LEFT); $query = 'i.state = 105'; $query .= " AND (creditnotedate BETWEEN '" . $y . "-" . $ym . "-" . "01' AND '" . $y . "-" . $ym . "-" . "31')"; $query .= ' AND i.clientid = ' . $user['clientid']; $query .= ' AND c.clientid = ' . $user['clientid']; if ($params['catid']) { $query = Zend_Controller_Action_HelperBroker::getStaticHelper('Query')->getQueryCategory($query, $params['catid'], $options['categories'], 'c'); } if ($params['country']) { $query = Zend_Controller_Action_HelperBroker::getStaticHelper('Query')->getQueryCountry($query, $params['country'], 'i'); } $creditnotes = $creditnotesDb->fetchAll($creditnotesDb->select()->from(array('i' => 'creditnote'))->join(array('c' => 'contact'), 'i.contactid = c.id', array('catid'))->where($query ? $query : 1)->setIntegrityCheck(false)); $turnover[$y . $ym] = 0; $turnoverCategories[0][$y . $ym] = 0; //Calculate invoices foreach ($invoices as $invoice) { $turnover[$y . $ym] += $invoice->subtotal; if (isset($turnoverCategories[$invoice->catid][$y . $ym])) { $turnoverCategories[$invoice->catid][$y . $ym] += $invoice->subtotal; } else { $turnoverCategories[$invoice->catid][$y . $ym] = $invoice->subtotal; } } //Calculate credit notes foreach ($creditnotes as $creditnote) { $turnover[$y . $ym] -= $creditnote->subtotal; if (isset($turnoverCategories[$creditnote->catid][$y . $ym])) { $turnoverCategories[$creditnote->catid][$y . $ym] += $creditnote->subtotal; } else { $turnoverCategories[$creditnote->catid][$y . $ym] = $creditnote->subtotal; } } //Calculate categories foreach ($options['categories'] as $id => $category) { if (isset($turnoverCategories[$id][$y . $ym])) { $turnoverCategories[$id][$y . $ym] = round($turnoverCategories[$id][$y . $ym]); } else { $turnoverCategories[$id][$y . $ym] = 0; } } $turnover[$y . $ym] = round($turnover[$y . $ym]); $turnoverCategories[0][$y . $ym] = round($turnoverCategories[0][$y . $ym]); $dataDb = 'total:' . $turnover[$y . $ym] . ';'; foreach ($turnoverCategories as $key => $value) { if (isset($value[$y . $ym])) { $dataDb .= $key . ':' . $value[$y . $ym] . ';'; } } //$archiveDb->addArchive($y.$ym, $dataDb, $user['clientid']); $months[$y . $ym] = $y . '/' . $ym; } ++$m; if ($m > 12) { $m = 0; } } ++$y; $m = 1; } //Merge subcategories to main categories foreach ($turnoverCategories as $id => $values) { if (isset($options['categories'][$id]['childs']) && $id != $params['catid']) { foreach ($options['categories'][$id]['childs'] as $childId) { foreach ($values as $month => $value) { $turnoverCategories[$id][$month] += $turnoverCategories[$childId][$month]; } unset($turnoverCategories[$childId]); } } } //Remove empty arrays foreach ($turnoverCategories as $key => $values) { if (!array_sum($values)) { unset($turnoverCategories[$key]); } } require_once BASE_PATH . '/library/pChart/class/pData.class.php'; require_once BASE_PATH . '/library/pChart/class/pDraw.class.php'; require_once BASE_PATH . '/library/pChart/class/pImage.class.php'; //Turnover /* Create your dataset object */ $turnoverData = new pData(); /* Add data in your dataset */ $turnoverData->addPoints($turnover, 'Values'); $turnoverData->setAxisName(0, '€ / Netto'); /* Create the X serie */ $turnoverData->addPoints($months, 'Labels'); $turnoverData->setSerieDescription('Labels', 'Months'); $turnoverData->setAbscissa('Labels'); /* Create a pChart object and associate your dataset */ $turnover = new pImage($width, $height, $turnoverData); /* Turn off AA processing */ $turnover->Antialias = FALSE; /* Choose a nice font */ $turnover->setFontProperties(array('FontName' => BASE_PATH . '/library/pChart/fonts/verdana.ttf', 'FontSize' => 10)); /* Define the boundaries of the graph area */ $turnover->setGraphArea(75, 20, $width - 30, $height - 60); /* Draw the scale, keep everything automatic */ $turnover->drawScale(array('DrawSubTicks' => TRUE, 'Mode' => SCALE_MODE_START0, 'LabelRotation' => 45)); /* Draw the scale, keep everything automatic */ $settings = array('Gradient' => TRUE, 'GradientMode' => GRADIENT_EFFECT_CAN, 'DisplayPos' => LABEL_POS_INSIDE, 'DisplayValues' => TRUE, 'DisplayR' => 0, 'DisplayG' => 0, 'DisplayB' => 0, 'DisplayShadow' => TRUE, 'Surrounding' => 10); $turnover->drawBarChart($settings); /* Build the PNG file and send it to the web browser */ if (!file_exists(BASE_PATH . '/cache/chart/')) { mkdir(BASE_PATH . '/cache/chart/'); chmod(BASE_PATH . '/cache/chart/', 0777); } $turnover->Render(BASE_PATH . '/cache/chart/turnover-' . $width . '-' . $height . '.png'); //Turnover by categories /* Create your dataset object */ $turnoverCategoriesData = new pData(); /* Add data in your dataset */ $turnoverCategoriesTotal = array(); foreach ($turnoverCategories as $key => $value) { $turnoverCategoriesTotal[$key] = array_sum($value); } arsort($turnoverCategoriesTotal); foreach ($turnoverCategoriesTotal as $key => $value) { if ($key && isset($options['categories'][$key])) { $turnoverCategoriesData->addPoints($turnoverCategories[$key], $options['categories'][$key]['title']); } } if (isset($turnoverCategories[0])) { $turnoverCategoriesData->addPoints($turnoverCategories[0], $statisticsUncategorized); } $turnoverCategoriesData->setAxisName(0, '€ / Netto'); /* Create the X serie */ $turnoverCategoriesData->addPoints($months, 'Labels'); $turnoverCategoriesData->setSerieDescription('Labels', 'Months'); $turnoverCategoriesData->setAbscissa('Labels'); /* Create a pChart object and associate your dataset */ $turnoverCategories = new pImage($width, $height, $turnoverCategoriesData); /* Turn off AA processing */ $turnoverCategories->Antialias = FALSE; /* Choose a nice font */ $turnoverCategories->setFontProperties(array('FontName' => BASE_PATH . '/library/pChart/fonts/verdana.ttf', 'FontSize' => 10)); /* Define the boundaries of the graph area */ $turnoverCategories->setGraphArea(75, 20, $width - 30, $height - 60); /* Draw the scale, keep everything automatic */ $turnoverCategories->drawScale(array('XMargin' => 2, 'DrawSubTicks' => TRUE, 'Mode' => SCALE_MODE_ADDALL_START0, 'LabelRotation' => 45)); /* Draw the scale, keep everything automatic */ $settings = array(); $turnoverCategories->drawStackedAreaChart($settings); /* Write the chart legend */ $turnoverCategories->drawLegend(100, 20, array('Style' => LEGEND_NOBORDER, 'Mode' => LEGEND_VERTICAL)); /* Build the PNG file and send it to the web browser */ $turnoverCategories->Render(BASE_PATH . '/cache/chart/turnover-category-' . $width . '-' . $height . '.png'); }
/** * 绘制图表并生成图片 * @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); }
/* Define the absissa serie */ $MyData->addPoints(array("Size", "Speed", "Reliability", "Functionalities", "Ease of use", "Weight"), "Labels"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(700, 230, $MyData); /* Draw a solid background */ $Settings = array("R" => 179, "G" => 217, "B" => 91, "Dash" => 1, "DashR" => 199, "DashG" => 237, "DashB" => 111); $myPicture->drawFilledRectangle(0, 0, 700, 230, $Settings); /* Overlay some gradient areas */ $Settings = array("StartR" => 194, "StartG" => 231, "StartB" => 44, "EndR" => 43, "EndG" => 107, "EndB" => 58, "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" => 100)); /* 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, "pRadar - Draw radar charts", array("R" => 255, "G" => 255, "B" => 255)); /* Set the default font properties */ $myPicture->setFontProperties(array("FontName" => "../fonts/Forgotte.ttf", "FontSize" => 10, "R" => 80, "G" => 80, "B" => 80)); /* Enable shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Create the pRadar object */ $SplitChart = new pRadar(); /* Draw a radar chart */ $myPicture->setGraphArea(10, 25, 300, 225); $Options = array("Layout" => RADAR_LAYOUT_STAR, "BackgroundGradient" => array("StartR" => 255, "StartG" => 255, "StartB" => 255, "StartAlpha" => 100, "EndR" => 207, "EndG" => 227, "EndB" => 125, "EndAlpha" => 50), "FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6); $SplitChart->drawRadar($myPicture, $MyData, $Options); /* Draw a radar chart */ $myPicture->setGraphArea(390, 25, 690, 225); $Options = array("Layout" => RADAR_LAYOUT_CIRCLE, "LabelPos" => RADAR_LABELS_HORIZONTAL, "BackgroundGradient" => array("StartR" => 255, "StartG" => 255, "StartB" => 255, "StartAlpha" => 50, "EndR" => 32, "EndG" => 109, "EndB" => 174, "EndAlpha" => 30), "FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6); $SplitChart->drawRadar($myPicture, $MyData, $Options);
$MyData->addPoints(array(37, 32, 33, 29, 29, 25, 22, 34, 29, 31), "Max"); $MyData->addPoints(array(30, 20, 21, 24, 22, 18, 18, 24, 22, 24), "Median"); $MyData->setAxisDisplay(0, AXIS_FORMAT_CURRENCY, "\$"); $MyData->addPoints(array("Dec 13", "Dec 14", "Dec 15", "Dec 16", "Dec 17", "Dec 20", "Dec 21", "Dec 22", "Dec 23", "Dec 24"), "Time"); $MyData->setAbscissa("Time"); $MyData->setAbscissaName("Time"); /* Create the pChart object */ $myPicture = new pImage(700, 230, $MyData); /* Retrieve the image map */ if (isset($_GET["ImageMap"]) || isset($_POST["ImageMap"])) { $myPicture->dumpImageMap("ImageMapStockChart", IMAGE_MAP_STORAGE_FILE, "StockChart", "../tmp"); } /* Set the image map name */ $myPicture->initialiseImageMap("ImageMapStockChart", IMAGE_MAP_STORAGE_FILE, "StockChart", "../tmp"); /* Turn of AAliasing */ $myPicture->Antialias = FALSE; /* Draw the border */ $myPicture->drawRectangle(0, 0, 699, 229, array("R" => 0, "G" => 0, "B" => 0)); $myPicture->setFontProperties(array("FontName" => FONT_PATH . "/pf_arma_five.ttf", "FontSize" => 6)); /* Define the chart area */ $myPicture->setGraphArea(60, 30, 650, 190); /* Draw the scale */ $scaleSettings = array("GridR" => 200, "GridG" => 200, "GridB" => 200, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE); $myPicture->drawScale($scaleSettings); /* Create the pStock object */ $mystockChart = new pStock($myPicture, $MyData); /* Draw the stock chart */ $stockSettings = array("RecordImageMap" => TRUE, "BoxUpR" => 255, "BoxUpG" => 255, "BoxUpB" => 255, "BoxDownR" => 0, "BoxDownG" => 0, "BoxDownB" => 0, "SerieMedian" => "Median"); $mystockChart->drawStockChart($stockSettings); /* Render the picture (choose the best way) */ $myPicture->autoOutput("../tmp/StockChart.png");
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); $myPicture->setShadow(FALSE); $myPicture->setGraphArea(50, 50, $anchura - 25, $altura - 40); $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); $AxisBoundaries = array(0 => array("Min" => 0, "Max" => 10)); $ScaleSettings = array("Mode" => SCALE_MODE_MANUAL, "ManualScale" => $AxisBoundaries, "DrawSubTicks" => TRUE, "DrawArrows" => TRUE, "ArrowSize" => 6);
$MyData->addPoints($csvdata_point, "Labels"); $MyData->setSerieDescription("Labels", "Months"); $MyData->setAbscissa("Labels"); $MyData->setSerieTicks("Probe 1", 4); $MyData->setAxisName(0, "Spanung in [mV]"); /* Create the pChart object */ $myPicture = new pImage(800, 400, $MyData); /* Turn of Antialiasing */ $myPicture->Antialias = FALSE; /* Add a border to the picture */ //$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)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 799, 399, array("R" => 0, "G" => 0, "B" => 0)); /* Write the chart title */ $myPicture->setFontProperties(array("FontName" => "libs/pChart2.1.4/fonts/Forgotte.ttf", "FontSize" => 11)); $myPicture->drawText(150, 35, "Spannungsverlauf seit Ladung", array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => "libs/pChart2.1.4/fonts/pf_arma_five.ttf", "FontSize" => 6)); /* Define the chart area */ $myPicture->setGraphArea(60, 40, 750, 370); /* Draw the scale */ $scaleSettings = array("XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridR" => 200, "GridG" => 200, "GridB" => 200, "GridAlpha" => 100, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE); $myPicture->drawScale($scaleSettings); /* Write the chart legend */ //$myPicture->drawLegend(640,20,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL)); /* Turn on Antialiasing */ $myPicture->Antialias = TRUE; /* Enable shadow computing */ //$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); /* Draw the area chart */
/* 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); /* Write down the legend */ $myPicture->setFontProperties(array("FontName" => "pChart2.1.4/fonts/arial.ttf", "FontSize" => 15)); $myPicture->drawLegend(10, 440, array("Style" => LEGEND_BOX, "Mode" => LEGEND_HORIZONTAL)); /* Render the picture */ $pictureName = "Charts/" . $key1 . "_" . $count_cor . ".png";
/* Turn of Antialiasing */ $myPicture->Antialias = TRUE; /* Draw the background */ $Settings = array("R" => 255, "G" => 255, "B" => 255, "Dash" => 0, "DashR" => 255, "DashG" => 255, "DashB" => 255); $myPicture->drawFilledRectangle(0, 0, 700, 450, $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,350,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(800,350,0,0,array("R"=>0,"G"=>0,"B"=>0)); /* Write the chart title */ // $myPicture->setFontProperties(array("FontName"=>"./fonts/simsun.ttc","FontSize"=>8,"R"=>255,"G"=>255,"B"=>255)); //$myPicture->drawText(10,16,"Average recorded temperature",array("FontSize"=>11,"Align"=>TEXT_ALIGN_BOTTOMLEFT)); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => "./fonts/simsun.ttc", "FontSize" => 10, "R" => 0, "G" => 0, "B" => 0)); /* Define the chart area */ $myPicture->drawText(200, 60, $chart_title); $myPicture->setFontProperties(array("FontName" => "./fonts/simsun.ttc", "FontSize" => 8, "R" => 0, "G" => 0, "B" => 0)); $myPicture->setGraphArea(40, 60, 800, 400); /* Draw the scale */ $scaleSettings = array("XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridR" => 200, "GridG" => 200, "GridB" => 200, "Mode" => SCALE_MODE_START0, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE, "LabelRotation" => 45, "LabelSkip" => $row_number / 60); $myPicture->drawScale($scaleSettings); /* Turn on Antialiasing */ $myPicture->Antialias = TRUE; /* Enable shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw the line chart */ $myPicture->drawLineChart(); //$myPicture->drawPlotChart(array("DisplayValues"=>TRUE,"PlotBorder"=>TRUE,"BorderSize"=>2,"Surrounding"=>-60,"BorderAlpha"=>80)); /* Write the chart legend */
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->loadPalette("../palettes/blind.color", TRUE); $MyData->addPoints(array(150, 220, 300, 250, 420, 200, 300, 200, 110), "Server A"); $MyData->addPoints(array("January", "February", "March", "April", "May", "Juin", "July", "August", "September"), "Months"); $MyData->setSerieDescription("Months", "Month"); $MyData->setAbscissa("Months"); /* Create the floating 0 data serie */ $MyData->addPoints(array(60, 80, 20, 40, 40, 50, 90, 30, 100), "Floating 0"); $MyData->setSerieDrawable("Floating 0", FALSE); /* Create the pChart object */ $myPicture = new pImage(700, 230, $MyData); /* Set the default font */ $myPicture->setFontProperties(array("FontName" => "../fonts/Forgotte.ttf", "FontSize" => 10, "R" => 110, "G" => 110, "B" => 110)); /* Write the title */ $myPicture->drawText(10, 13, "Net Income 2k8"); /* Set the graphical area */ $myPicture->setGraphArea(50, 30, 680, 180); /* Draw the scale */ $AxisBoundaries = array(0 => array("Min" => 0, "Max" => 500)); $myPicture->drawScale(array("InnerTickWidth" => 0, "OuterTickWidth" => 0, "Mode" => SCALE_MODE_MANUAL, "ManualScale" => $AxisBoundaries, "LabelRotation" => 45, "DrawXLines" => FALSE, "GridR" => 0, "GridG" => 0, "GridB" => 0, "GridTicks" => 0, "GridAlpha" => 30, "AxisAlpha" => 0)); /* Turn on shadow computing */ $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10)); /* Draw the chart */ $settings = array("Floating0Serie" => "Floating 0", "Surrounding" => 10); $myPicture->drawBarChart($settings); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.drawBarChart.span.png");
/* 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");
/* 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); /* Draw a rectangle */ $RectangleSettings = array("R" => 209, "G" => 125, "B" => 27, "Alpha" => 100); $myPicture->drawRectangle(480, 90, 650, 120, $RectangleSettings);
// 纵坐标单位(主坐标轴) $unitY = ''; if (isset($_GET['unity'])) { $unitY = strtolower($_GET['unity']); } // 颜色 if (isset($_GET['color'])) { $palette = $paletteSet[$_GET['color']]; } /* Create and populate the pData object */ $myData = new pData(); /* Create the pChart object */ $myPicture = new pImage($width, $height, $myData); /* Turn of Antialiasing */ $myPicture->Antialias = TRUE; $myPicture->setFontProperties(array("FontName" => "./fonts/simhei.ttf", "FontSize" => $font_t, "R" => 0, "G" => 0, "B" => 0)); /* Draw the background */ $bgcolor = array("R" => 180, "G" => 180, "B" => 180); $scaleRGB = array("GridR" => 200, "GridG" => 200, "GridB" => 200); if ($bg == 0) { $myPicture->drawRectangle(1, 0, $width - 1, $height - 1, array("R" => 0, "G" => 0, "B" => 0)); } else { if ($bg == 1) { if (isset($palette)) { $bgcolor = $palette['bgcolor']; } $myPicture->drawFilledRectangle(3, 0, $width - 1, $height - 4, array("R" => $bgcolor['R'], "G" => $bgcolor['G'], "B" => $bgcolor['B'], "Dash" => 0, "DashR" => 255, "DashG" => 255, "DashB" => 255)); $myPicture->drawRectangle(3, 0, $width - 1, $height - 4, array("R" => 0, "G" => 0, "B" => 0)); $myPicture->drawFilledRectangle(0, 3, $width - 4, $height - 1, array("R" => 255, "G" => 255, "B" => 255, "Alpha" => 90)); $myPicture->drawRectangle(0, 3, $width - 4, $height - 1, array("R" => 0, "G" => 0, "B" => 0)); $scaleRGB = array("GridR" => 0, "GridG" => 0, "GridB" => 0, "GridAlpha" => 10);
/** * Desenha um gráfico de torta * @param $title título do graico * @param $data vetor contendo os dados do gráfico * @param $width largura do gráfico * @param $height altura do gráfico * @param $outputPath caminho de saída do gráfico */ public function drawPieChart($title, $data, $width, $height, $outputPath) { // cria o modelo de dados $modelo = new pData(); $newdata = array(); foreach ($data as $legend => $value) { $newdata[] = $value == NULL ? VOID : $value; $labels[] = $legend; } $modelo->addPoints($newdata, "ScoreA"); /* Define the absissa serie */ $modelo->addPoints($labels, "Labels"); $modelo->setAbscissa("Labels"); // cria o objeto que irá conter a imagem do gráfico $imagem = new pImage($width, $height, $modelo); // adiciona uma borda na forma de um retângulo dentro da imagem $imagem->drawRectangle(0, 0, $width - 1, $height - 1, array("R" => 0, "G" => 0, "B" => 0)); // escreve um título dentro do gráfico $imagem->setFontProperties(array("FontName" => "app/lib/pchart/fonts/Forgotte.ttf", "FontSize" => 11)); $imagem->drawText(60, 35, $title, array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMLEFT)); // define a fonte dos dados do gráfico $imagem->setFontProperties(array("FontName" => "app/lib/pchart/fonts/Forgotte.ttf", "FontSize" => 10, "R" => 80, "G" => 80, "B" => 80)); // cria o gráfico de torta $pie = new pPie($imagem, $modelo); // desenha o gráfico de torta $pie->draw3DPie($width / 2, $height / 2, array('WriteValues' => TRUE, 'DrawLabels' => TRUE, "Radius" => $width / 4, 'ValueR' => 0, 'ValueG' => 0, 'ValueB' => 0, 'ValueAlpha' => 80)); // desenha a legenda do gráfico $imagem->setShadow(FALSE); $pie->drawPieLegend(15, 40, array("Alpha" => 20)); // grava o gráfico em um arquivo $imagem->render($outputPath); }
/* 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, "drawText() - add some text to your charts", 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)); /* Write some text */ $myPicture->setFontProperties(array("FontName" => "../fonts/advent_light.ttf", "FontSize" => 20)); $TextSettings = array("R" => 255, "G" => 255, "B" => 255, "Angle" => 10); $myPicture->drawText(60, 115, "10 degree text", $TextSettings); /* Write some text */ $TextSettings = array("R" => 0, "G" => 0, "B" => 0, "Angle" => 0, "FontSize" => 40); $myPicture->drawText(220, 130, "Simple text", $TextSettings); /* Write some text */ $TextSettings = array("R" => 200, "G" => 100, "B" => 0, "Angle" => 90, "FontSize" => 14); $myPicture->drawText(500, 170, "Vertical Text", $TextSettings); /* Write some text */ $myPicture->setFontProperties(array("FontName" => "../fonts/Bedizen.ttf", "FontSize" => 6));