function test_case($case) { global $cases, $test_verbose, $n_tests, $n_pass, $n_fail, $test_save; $n_tests++; extract($cases[$case]); $title = "Test case {$n_tests}: {$data_type} (should match {$like})"; # Make a data array that is valid (but not necessarily reasonable) # for any data type. One works for all except pie chart. if (!empty($pie)) { $plot_type = 'pie'; $data = array(array('', 1), array('', 1), array('', 2)); } else { $plot_type = 'lines'; # Valid for text-data, data-data, and data-data-error: $data = array(array('', 1, 2, 2, 2), array('', 2, 4, 1, 1), array('', 3, 5, 2, 2)); } $p1 = new PHPlot(400, 300); $p1->SetFailureImage(False); $p1->SetPrintImage(False); $p1->SetDataValues($data); $p1->SetDataType($data_type); // Alias data type $p1->SetPlotType($plot_type); $p1->DrawGraph(); $p1_image = $p1->EncodeImage('raw'); if ($test_save) { file_put_contents("dta-{$case}a_{$data_type}.png", $p1_image); } $p2 = new PHPlot(400, 300); $p2->SetFailureImage(False); $p2->SetPrintImage(False); $p2->SetDataValues($data); $p2->SetDataType($like); // Base data type - alias should match this $p2->SetPlotType($plot_type); $p2->DrawGraph(); $p2_image = $p2->EncodeImage('raw'); if ($test_save) { file_put_contents("dta-{$case}b_{$like}.png", $p2_image); } if ($p1_image == $p2_image) { $n_pass++; if ($test_verbose) { echo "Pass: {$title}\n"; } } else { $n_fail++; echo "FAIL - Image Mismatch: {$title}\n"; } }
function graficoBarra($data, $archivo = "", $meta_data = array('titulo' => 'Sin Título', 'tituloX' => 'Eje X', 'tituloY' => 'Eje Y', 'color' => 'SkyBlue', 'width' => 800, 'height' => 600, 'angle' => 45), $legend = array("Datos")) { # Objeto que crea el gráfico y su tama?o $plot = new PHPlot($meta_data['width'], $meta_data['height']); $plot->SetImageBorderType('plain'); # Setea el archivo donde se guarda la imagen generada y no permite la visualización inmediata $plot->SetPrintImage(false); $plot->SetFileFormat("jpg"); $plot->SetOutputFile($archivo); $plot->SetIsInline(true); # Envio de datos $plot->SetDataValues($data); # Tipo de gráfico y datos $plot->SetDataType("text-data"); $plot->SetPlotType("bars"); # Setiando el True type font //$plot->SetTTFPath(TTFPath); //$plot->SetUseTTF(TRUE); $plot->SetAxisFontSize(2); $plot->SetVertTickIncrement(7); //$plot->SetXTickLength(7); //$plot->SetDataColors($meta_data['color']); $plot->SetDataColors(array($meta_data['color'], 'red', 'white')); $plot->SetLegendPixels(1, 1); $plot->SetLegend($legend); # Etiquetas del eje Y: $plot->SetYTitle($meta_data['tituloY']); $plot->SetYDataLabelPos('plotin'); # Título principal del gráfico: $plot->SetTitle($meta_data['titulo']); # Etiquetas eje X: $plot->SetXTitle($meta_data['tituloX']); if (isset($meta_data['angle'])) { $plot->SetXLabelAngle($meta_data['angle']); } else { $plot->SetXLabelAngle(45); } $plot->SetXTickLabelPos('none'); $plot->SetXTickPos('none'); # Método que dibuja el gráfico $plot->DrawGraph(); $plot->PrintImage(); }
<?php # $Id$ # PHPlot error test - semantic error - mismatched data type and plot type require_once 'phplot.php'; $data = array(array('a', 1, 1), array('b', 2, 3), array('c', 3, 5)); $plot = new PHPlot(); $plot->SetDataType('data-data'); $plot->SetDataValues($data); $plot->SetPlotType('bars'); $plot->DrawGraph();
function plotGraph($data) { //Define the object $plot = new PHPlot(); $example_data = $data; $plot->SetDataValues($example_data); $plot->SetDataType('data-data'); //Set titles $plot->SetTitle("temp and humi"); $plot->SetXTitle('time'); $plot->SetYTitle('Y Data'); $legend = array('temp', 'humi'); $plot->SetLegend($legend); $plot->SetXDataLabelAngle(90); //$plot->SetXGridLabelType("time"); $plot->SetXTickLabelPos('xaxis'); $plot->SetXTickPos('plotdown'); $plot->SetXLabelType('time', '%H:%M'); $plot->TuneXAutoTicks(10, 'date'); // $plot->SetXTickIncrement(.5); //$plot->SetXTickIncrement(60 * 24); $plot->SetPlotType('lines'); //$plot->SetPlotAreaWorld(strtotime('00:00'), null, strtotime('23:59'), null); $plot->SetDrawXGrid(true); //Draw it $plot->DrawGraph(); }
public function renderLot() { $grafico = new PHPlot(800, 600); $grafico->SetFileFormat("jpg"); $grafico->SetIsInline(True); #Indicamos o títul do gráfico e o título dos dados no eixo X e Y do mesmo $grafico->SetTitle($this->data->titulo); $grafico->SetXTitle($this->data->eixoX); $grafico->SetYTitle($this->data->eixoY); #passamos o tipo de gráfico escolhido if (!$this->data->tipoLot) { $this->data->tipoLot = 'bars'; } $grafico->SetPlotType($this->data->tipoLot); switch ($this->data->tipoLot) { case 'pie': $grafico->SetPieLabelType('index', 'custom', 'mycallback'); $grafico->SetDataType('text-data-single'); break; case 'stackedbars': $grafico->SetDataType('text-data-yx'); break; case 'bubbles': $grafico->SetDataType('data-data-xyz'); break; } $grafico->SetLegend($column_names); #Definimos os dados do gráfico switch ($this->data->tipoLot) { case 'pie': $dados = array(array($this->data->x1, $this->data->y11), array($this->data->x2, $this->data->y21), array($this->data->x3, $this->data->y31), array($this->data->x4, $this->data->y41)); break; default: $dados = array(array($this->data->x1, $this->data->y11, $this->data->y12, $this->data->y13), array($this->data->x2, $this->data->y21, $this->data->y22, $this->data->y23), array($this->data->x3, $this->data->y31, $this->data->y32, $this->data->y33), array($this->data->x4, $this->data->y41, $this->data->y42, $this->data->y43)); break; } $grafico->SetDataValues($dados); #Salvamos o gráfico $caminho = \Manager::getFilesPath(); $fileName = uniqid() . '.jpg'; $grafico->SetOutputFile($caminho . '/' . $fileName); $grafico->SetIsInline(True); $grafico->DrawGraph(); #obtemos o endereco do grafico $this->data->locate = \Manager::getDownloadURL('files', basename($fileName), true); }
function testBars() { # PHPlot Example: Bar chart, 3 data sets, unshaded $data = array(array('Jan', 40, 2, 4), array('Feb', 30, 3, 4), array('Mar', 20, 4, 4), array('Apr', 10, 5, 4), array('May', 3, 6, 4), array('Jun', 7, 7, 4), array('Jul', 10, 8, 4), array('Aug', 15, 9, 4), array('Sep', 20, 5, 4), array('Oct', 18, 4, 4), array('Nov', 16, 7, 4), array('Dec', 14, 3, 4)); $plot = new PHPlot(800, 600); $plot->SetIsInline(true); $plot->SetImageBorderType('plain'); $plot->SetPlotType('bars'); $plot->SetDataType('text-data'); $plot->SetDataValues($data); # Main plot title: $plot->SetTitle('Unshaded Bar Chart with 3 Data Sets'); # No 3-D shading of the bars: $plot->SetShading(0); # Make a legend for the 3 data sets plotted: $plot->SetLegend(array('Engineering', 'Manufacturing', 'Administration')); # Turn off X tick labels and ticks because they don't apply here: $plot->SetXTickLabelPos('none'); $plot->SetXTickPos('none'); $plot->DrawGraph(); }
function make_plot($plot_type, $data_type, $nx, $ny) { $plot = new PHPlot(1280, 1024); $plot->SetPrintImage(False); $plot->SetFailureImage(False); $plot->SetDataType($data_type); $plot->SetDataValues(make_data_array($plot_type, $data_type, $nx, $ny, 100)); $plot->SetPlotType($plot_type); $plot->SetTitle("Serialize/Unserialize Tests\n{$plot_type} - {$data_type}"); $plot->SetXTickIncrement(5); $plot->SetYTickIncrement(10); $plot->SetPlotBorderType('full'); $plot->SetDrawXGrid(True); $plot->SetDrawYGrid(True); $plot->SetXTitle('X Axis Title'); $plot->SetYTitle('Y Axis Title'); # Select data labels or tick labels based on data type: if ($data_type == 'data-data') { $plot->SetXDataLabelPos('none'); $plot->SetXTickLabelPos('plotdown'); $plot->SetXTickPos('plotdown'); } elseif ($data_type == 'text-data') { $plot->SetXDataLabelPos('plotdown'); $plot->SetXTickLabelPos('none'); $plot->SetXTickPos('none'); } elseif ($data_type == 'data-data-yx') { $plot->SetYDataLabelPos('none'); $plot->SetYTickLabelPos('plotleft'); $plot->SetYTickPos('plotleft'); } elseif ($data_type == 'text-data-yx') { $plot->SetYDataLabelPos('plotleft'); $plot->SetYTickLabelPos('none'); $plot->SetYTickPos('none'); } return $plot; }
<?php include "./data_date2.php"; include "../phplot.php"; $graph = new PHPlot(600, 400); $graph->SetPrintImage(0); //Don't draw the image yet $graph->SetDataType("data-data-error"); //Must be called before SetDataValues $graph->SetNewPlotAreaPixels(90, 40, 540, 190); $graph->SetDataValues($example_data); $graph->SetXGridLabelType("time"); $graph->SetXDataLabelAngle(90); $graph->SetXLabel(""); $graph->SetYLabel("Price"); $graph->SetVertTickIncrement(20); $graph->SetHorizTickIncrement(2679000); $graph->SetXTimeFormat("%b %y"); $graph->SetPlotType("lines"); $graph->SetErrorBarShape("line"); $graph->SetPointShape("halfline"); $graph->SetYScaleType("log"); $graph->SetLineWidth(1); $graph->SetPlotAreaWorld(883634400, 1, 915095000, 140); $graph->DrawGraph(); //Now do the second chart on the image unset($example_data); $graph->SetPrintImage(1); //Now draw the image $graph->SetYScaleType("linear"); include "./data_date.php";
function plotfile_me($pdf, $mv_id, $w = 800, $h = 600) { $mvs = new mietvertraege(); $mvs->get_mietvertrag_infos_aktuell($mv_id); $mk = new mietkonto(); $datum_mietdefinition = $mk->datum_1_mietdefinition($mv_id); // echo "<h1>$datum_mietdefinition</h1>"; $a_dat = explode('-', $datum_mietdefinition); $jahr_a = date("Y") - 2; $jahr_e = date("Y") + 3; $jahre = $jahr_e - $jahr_a; $z = 0; for ($jahr = $jahr_a; $jahr <= $jahr_e; $jahr++) { $monat = date("m"); $mk->kaltmiete_monatlich($mv_id, $monat, $jahr); if ($jahr > $jahr_a) { $miete_vorjahr = $arr_stat[$z - 1][1]; $prozent = ($mk->ausgangs_kaltmiete - $miete_vorjahr) / ($miete_vorjahr / 100); } else { $prozent = 0; } $prozent = nummer_punkt2komma($prozent); $arr_stat[$z][0] = "{$jahr}\n{$mk->ausgangs_kaltmiete}\nEUR\n{$prozent} %"; $arr_stat[$z][1] = $mk->ausgangs_kaltmiete; $z++; } // print_r($arr_stat); require_once 'phplot.php'; $plot = new PHPlot($w, $h); $plot->SetImageBorderType('plain'); $plot->SetPlotType('bars'); $plot->SetDataType('text-data'); $plot->SetDataValues($arr_stat); // Main plot title: $plot->SetTitle('MIETENTWICKLUNG' . " {$mvs->einheit_kurzname} \n {$mvs->personen_name_string}"); // No 3-D shading of the bars: $plot->SetShading(0); // Make a legend for the 3 data sets plotted: // $plot->SetLegend(array('Mieteinnahmen', 'Leerstand')); $plot->SetLegend(array('MIETE')); // Turn off X tick labels and ticks because they don't apply here: $plot->SetXTickLabelPos('none'); $plot->SetXTickPos('none'); // Draw it $plot->SetIsInline(true); $img = $plot->DrawGraph(); $px = 'px'; // echo "<hr>$plot->img "; // $plot->PrintImageFrame(); // $hhh = $plot->PrintImage(); $ima = $plot->EncodeImage(); // echo "<a style=\"width:$w$px;heigth:$h$px;\" href=\"?option=stat_mv_big&mv_id=$mv_id\"><img style=\"width:$w$px;heigth:$h$px;\" src=\"$plot->img\"></img></a>"; // die(); // echo "<img src=\"$ima\">"; // die(); if ($mvs->mietvertrag_aktuell == 1) { $pdf->ezNewPage(); $druckdatum = date("d.m.Y"); $pdf->addText(464, 730, 7, "<b>Druckdatum: {$druckdatum}</b>"); $pdf->addPngFromFile($ima, $pdf->x + 10, $pdf->y - $h, $w, $h); } }
# Convert the data array from "low, close, high" # to "close, max gain, max loss", for data type data-data-error. $n_rows = count($data); for ($i = 0; $i < $n_rows; $i++) { $low = $data[$i][2]; $close = $data[$i][3]; $high = $data[$i][4]; $data[$i][2] = $close; $data[$i][3] = $high - $close; $data[$i][4] = $close - $low; } # print_r($data); # exit; $p = new PHPlot(800, 600); $p->SetTitle($tp['title'] . $tp['suffix']); $p->SetDataType('data-data-error'); $p->SetDataValues($data); #print_r($p); #exit; # We don't use the data labels (all set to '') so might as well turn them off: #$p->SetXDataLabelPos('none'); # Turn off unused ticks and tick labels $p->SetXTickLabelPos('none'); $p->SetXTickPos('none'); # Need to set area and ticks to get reasonable choices. $p->SetPlotAreaWorld(0, 0, 11, 25); $p->SetXTickIncrement(1); # Draw both grids: $p->SetDrawXGrid(True); $p->SetDrawYGrid(True); # Is default
<?php # Typical bars with labels, for manual. require_once 'phplot.php'; $data = array(array('First', 10), array('Second', 20), array('Third', 30)); $p = new PHPlot(400, 300); $p->SetDataType('text-data-yx'); $p->SetDataValues($data); $p->SetPlotType('bars'); $p->SetTitle('Horizontal Bar Plot With Labels'); $p->SetXTitle('Dependent Variable'); $p->SetYTitle('Independent Variable'); $p->SetYDataLabelPos('plotleft'); $p->SetYTickPos('none'); $p->SetXDataLabelPos('plotin'); $p->SetPlotAreaWorld(0, NULL, 40, NULL); $p->SetXTickIncrement(5); $p->SetImageBorderType('plain'); $p->DrawGraph();
if ($which_data_type == 'data-data-error') { for ($i = 0; $i < $num_data_rows; $i++) { eval("\$data[\$i] = \$data_row{$i}; "); } } else { foreach ($data_row0 as $key => $val) { $data[$key] = array($data_row0[$key], $data_row1[$key], $data_row2[$key], $data_row3[$key], $data_row4[$key]); } } } } //////////////////////////////////////////////// //Required Settings include "../phplot.php"; $graph = new PHPlot($xsize_in, $ysize_in); $graph->SetDataType($which_data_type); // Must be first thing $graph->SetDataValues($data); //Optional Settings (Don't need them) // $graph->SetTitle("This is a\n\rmultiple line title\n\rspanning three lines."); $graph->SetTitle($title); $graph->SetXTitle($xlbl, $which_xtitle_pos); $graph->SetYTitle($ylbl, $which_ytitle_pos); $graph->SetLegend(array("A", "Bee", "Cee", "Dee")); $graph->SetFileFormat($which_fileformat); $graph->SetPlotType($which_plot_type); $graph->SetUseTTF($which_use_ttf); $graph->SetYTickIncrement($which_yti); $graph->SetXTickIncrement($which_xti); $graph->SetXTickLength($which_xtl); $graph->SetYTickLength($which_ytl);
function BuatBarGraph($filetujuan, $prevtahun, $tahun, $arrStatusAplikan, $urutan, $gel) { $arrPrevTotal = array(); $arrCurTotal = array(); FillArrayPeriod($arrPrevTotal, $arrStatusAplikan, $prevtahun, $gel); FillArrayPeriod($arrCurTotal, $arrStatusAplikan, $tahun, $gel); $maxPrevHeight = 0; $maxCurHeight = 0; foreach ($arrStatusAplikan as $stat) { $data[] = array($stat, $arrPrevTotal[$stat], $arrCurTotal[$stat]); $maxPrevHeight = $maxPrevHeight < $arrPrevTotal[$stat] ? $arrPrevTotal[$stat] : $maxPrevHeight; $maxCurHeight = $maxCurHeight < $arrCurTotal[$stat] ? $arrCurTotal[$stat] : $maxCurHeight; } $plot = new PHPlot(800, 600); //$plot->SetImageBorderType('raised'); $plot->SetFont('y_label', 5); $plot->SetFont('x_label', 5); $plot->SetFont('title', 5); $plot->SetFont('legend', 5); $plot->setShading(10); $plot->SetPlotType('bars'); $plot->SetDataType('text-data'); $plot->SetDataValues($data); $plot->SetTitle('GRAFIK & DATA PMB GEL SISIPAN'); $plot->SetLegend(array($prevtahun, $tahun)); $plot->SetXTickLabelPos('none'); $plot->SetXTickPos('none'); $maxHeight = $maxPrevHeight < $maxCurHeight ? $maxCurHeight : $maxPrevHeight; $increment = $maxHeight <= 50 ? 5 : ($maxHeight <= 100 ? 10 : ($maxHeight <= 500 ? 50 : 100)); $plot->SetYTickIncrement($increment); $plot->SetYDataLabelPos('plotin'); $plot->SetIsInline(true); $plot->SetOutputFile($filetujuan); $plot->DrawGraph(); }
$label[0] = "October"; $label[5] = "Day 5"; $label[10] = "Day 10"; $label[15] = "Day 15"; $label[20] = "Day 20"; $label[25] = "Day 25"; $label[30] = "Day 30"; Error_Reporting(0); for ($i = 0; $i <= 30; $i++) { $a += rand(-1, 2); $b = $a * rand(0, 1) / 10; $c = $a * rand(0, 1) / 10; $data[] = array("{$label[$i]}", $i + 1, $a, $b, $c); } //Define the data for error bars $graph->SetDataType("linear-linear-error"); //Must be first thing //Set the Graph particulars $graph->SetPrecisionX(0); $graph->SetPrecisionY(0); $graph->SetUseTTF("0"); $graph->SetDrawYGrid("1"); // 1 = true $graph->SetDataValues($data); $graph->SetImageArea(600, 400); $graph->SetVertTickIncrement(""); $graph->SetHorizTickIncrement(1); $graph->SetErrorBarLineWidth(1); $graph->SetYScaleType("log"); $graph->SetPointShape("halfline"); $graph->SetErrorBarShape("line");
unset($data); $a = 9.619999999999999; srand((double) microtime() * 1000000); $label[0] = "October"; $label[5] = "Day 5"; $label[10] = "Day 10"; $label[15] = "Day 15"; $label[20] = "Day 20"; $label[25] = "Day 25"; for ($i = 0; $i <= 30; $i++) { $a += rand(-1, 2); $b = rand(0, 1); $c = rand(0, 1); $data[] = array("{$label[$i]}", $i + 1, $a, $b, $c); } $graph->SetDataType("linear-linear-error"); //Must be first thing $graph->SetPrecisionY(0); $graph->SetPrecisionX(0); //////////////////////////////////////////////// $graph->SetDataType($which_data_type); //Must be first thing $graph->SetUseTTF("0"); $graph->SetDrawYGrid("1"); // 1 = true $graph->SetDataValues($data); $graph->SetImageArea($XSIZE_in, $YSIZE_in); $graph->SetVertTickIncrement($which_vti); $graph->SetHorizTickIncrement($which_hti); $graph->SetLineWidth("1"); $graph->SetPointShape("{$which_dot}");
<?php include "../phplot.php"; $graph = new PHPlot(600, 200); include "./data_date.php"; $graph->SetDataType("data-data"); //Must be called before SetDataValues $graph->SetXGridLabelType("time"); $graph->SetXDataLabelAngle(90); $graph->SetXLabel(""); $graph->SetYLabel("Volume"); $graph->SetVertTickIncrement(30); $graph->SetXTimeFormat("%b %y"); $graph->SetDataValues($example_data); $graph->SetHorizTickIncrement(2679000); $graph->SetPlotType("thinbarline"); //$graph->SetDrawXDataLabels(1); $graph->SetPlotAreaWorld(883634400, 0, 915095000, 90); $graph->DrawGraph();
<?php session_start(); require_once 'phplot.php'; echo $_GET[countKeywords]; $data = array(array('新增文件', intval($_GET[countnew])), array('删除文件', intval($_GET[countdel])), array('修改文件', intval($_GET[countmodify]))); $plot = new PHPlot(350, 280); $plot->SetTTFPath('./public'); $plot->SetDefaultTTFont('SIMHEI.TTF'); $plot->SetUseTTF(True); $plot->SetImageBorderType('plain'); $plot->SetPlotType('bars'); $plot->SetDataType('text-data'); $plot->SetPlotBorderType('full'); $plot->SetBackgroundColor('#ffffcc'); $plot->SetDrawPlotAreaBackground(True); $plot->SetPlotBgColor('#ffffff'); $plot->SetDataValues($data); $plot->SetTitle("新增文件数:{$_GET['countnew']} 删除文件数:{$_GET['countdel']} 修改文件数:{$_GET['countmodify']}"); $plot->SetTitleColor('#D9773A'); foreach ($data as $row) { $plot->Setshading(10); } $plot->SetDataBorderColors('black'); $plot->DrawGraph();
$graph->SetYTitle(_('Sales Value')); } elseif ($_POST['GraphValue'] == 'GP') { $graph->SetYTitle(_('Gross Profit')); } else { $graph->SetYTitle(_('Quantity')); } $graph->SetXTickPos('none'); $graph->SetXTickLabelPos('none'); $graph->SetBackgroundColor('white'); $graph->SetTitleColor('blue'); $graph->SetFileFormat('png'); $graph->SetPlotType($_POST['GraphType']); $graph->SetIsInline('1'); $graph->SetShading(5); $graph->SetDrawYGrid(TRUE); $graph->SetDataType('text-data'); $SalesResult = DB_query($SQL, $db); if (DB_error_no($db) != 0) { prnMsg(_('The sales graph data for the selected criteria could not be retrieved because') . ' - ' . DB_error_msg($db), 'error'); include 'includes/footer.inc'; exit; } if (DB_num_rows($SalesResult) == 0) { prnMsg(_('There is not sales data for the criteria entered to graph'), 'info'); include 'includes/footer.inc'; exit; } $GraphArrays = array(); $i = 0; while ($myrow = DB_fetch_array($SalesResult)) { $GraphArray[$i] = array(MonthAndYearFromSQLDate($myrow['lastdate_in_period']), $myrow['sales'], $myrow['budget']);
# a data array with no Y values at all. # The purpose of this test is to check for a bug with axis data labels. # Some plot types would not display the labels if there is no data at all. # # This is a parameterized test. Set plot_type, optionally data_type and # call this script. require_once 'phplot.php'; if (empty($plot_type)) { $plot_type = 'lines'; } if (empty($data_type)) { $data_type = 'text-data'; } $need_x = $data_type == 'data-data' || $data_type == 'data-data-yx' || $data_type == 'data-data-error' || $data_type == 'data-data-xyz'; # Build a data array with no Y values at all: $data = array(); for ($r = 0; $r < 8; $r++) { $row = array('=' . chr(ord('A') + $r) . '='); // Label if ($need_x) { $row[] = $r + 1; } // Independent variable $data[] = $row; } $p = new PHPlot(); $p->SetTitle("Plot with no Y values: {$plot_type}, {$data_type}\n" . "Check for horizontal axis data labels"); $p->SetPlotType($plot_type); $p->SetDataType($data_type); $p->SetDataValues($data); $p->DrawGraph();
<?php require 'mem_image.php'; require 'pmb/phplot/phplot.php'; $graph = new PHPlot(500, 250); $graph->SetDataType('linear-linear'); //Specify some data $data = array(array('', 2000, 750), array('', 2010, 1700), array('', 2015, 2000), array('', 2020, 1800), array('', 2025, 1300), array('', 2030, 400)); $graph->SetDataValues($data); //Specify plotting area details $graph->SetPlotType('lines'); $graph->SetTitleFontSize('2'); $graph->SetTitle('Social Security trust fund asset estimates, in $ billions'); $graph->SetPlotAreaWorld(2000, 0, 2035, 2000); $graph->SetPlotBgColor('white'); $graph->SetPlotBorderType('left'); $graph->SetBackgroundColor('white'); $graph->SetDataColors(array('red'), array('black')); //Define the X axis $graph->SetXLabel('Year'); $graph->SetHorizTickIncrement('5'); $graph->SetXGridLabelType('default'); //Define the Y axis $graph->SetVertTickIncrement('500'); $graph->SetPrecisionY('0'); $graph->SetYGridLabelType('right'); $graph->SetLightGridColor('blue'); //Disable image output $graph->SetPrintImage(0); //Draw the graph $graph->DrawGraph();
function BuatPieGraph($filetujuan, $prevtahun, $tahun, $urutan, $gel) { $fg = GetaField("pmb b left outer join pmbperiod p on b.PMBPeriodID=p.PMBPeriodID and b.KodeID=p.KodeID and LEFT(p.PMBPeriodID, 4)='{$tahun}'", "(b.TahunLulus='{$prevtahun}' or b.TahunLulus='{$tahun}') and b.KodeID", KodeID, "count(b.PMBID)"); $nfg = GetaField("pmb b left outer join pmbperiod p on b.PMBPeriodID=p.PMBPeriodID and b.KodeID=p.KodeID and LEFT(p.PMBPeriodID, 4)='{$tahun}'", "b.TahunLulus < '{$prevtahun}' and b.KodeID", KodeID, "count(b.PMBID)"); $data = array(array('Fresh Graduate', $fg), array('Non Fresh Graduate', $nfg)); $plot = new PHPlot(800, 600); //$plot->SetImageBorderType('raised'); $plot->SetPlotType('pie'); $plot->SetDataType('text-data-single'); $plot->SetDataValues($data); $plot->SetDataColors(array('red', 'blue', 'green', 'yellow', 'cyan', 'magenta', 'brown', 'lavender', 'pink', 'gray', 'orange')); $plot->setShading(60); $plot->SetLabelScalePosition(0.2); $plot->SetFont('generic', 5); $plot->SetFont('title', 5); $plot->SetFont('legend', 5); $plot->SetTitle("Persentase Calon Mahasiswa Fresh / non Fresh Graduate"); foreach ($data as $row) { $plot->SetLegend(implode(': ', $row)); } $plot->SetIsInline(true); $plot->SetOutputFile($filetujuan); $plot->DrawGraph(); }
function costo_externo_interno_año($id_oficina, $año) { $this->autoLayout = false; $this->autoRender = false; $this->loadModel('CentroCosto'); $sql_oficina = ''; if ($id_oficina != 0) { $sql_oficina = " AND Cencos_id='" . $id_oficina . "' "; $cenco = $this->CentroCosto->find('first', array('fields' => array('CentroCosto.Cencos_nombre'), 'conditions' => array('CentroCosto.Cencos_id' => $id_oficina))); $subtitulo_oficina = 'la dependencia ' . mb_convert_case($cenco['CentroCosto']['Cencos_nombre'], MB_CASE_TITLE, "UTF-8"); } else { $subtitulo_oficina = 'todas las dependencias'; } $meses = $this->Solicitud->query("SELECT MONTH(solucionada) AS mes FROM solicitudes WHERE estado='s' " . $sql_oficina . " AND YEAR(solucionada)=" . $año . " GROUP BY MONTH(solucionada)"); if (!empty($meses)) { // Inicializamos el arreglo en ceros (para los meses ke no tienen solicitudes). $totales = array(); for ($i = 1; $i <= 12; $i++) { $totales[$i][0][0] = array('costo_i' => 0, 'costo_e' => 0); } foreach ($meses as $mes) { $costos_e_i = $this->Solicitud->query("SELECT SUM(costo_externo) AS costo_e, SUM(costo_interno) AS costo_i FROM solicitudes WHERE estado='s' AND YEAR(solucionada)=" . $año . " AND MONTH(solucionada)=" . $mes[0]['mes']); $totales[$mes[0]['mes']] = $costos_e_i; } if (!empty($totales)) { $total_costo_interno = $total_costo_externo = 0; $i = 0; $arreglo_plot = array(); foreach ($totales as $mes => $arreglo_mes) { // se construye el array para el PHPlot. if (count($arreglo_mes) > 0) { $arreglo_plot[$i] = array($this->meses[$mes], $arreglo_mes[0][0]['costo_i'], $arreglo_mes[0][0]['costo_e']); $total_costo_interno += $arreglo_mes[0][0]['costo_i']; $total_costo_externo += $arreglo_mes[0][0]['costo_e']; } else { $arreglo_plot[$i] = array($this->meses[$mes], 0, 0); } $i++; } $plot = new PHPlot(1790, 500); $plot->SetDataValues($arreglo_plot); $plot->SetDataType('text-data'); // Fuentes $plot->SetUseTTF(true); $plot->SetFontTTF('legend', 'FreeSans.ttf', 9); $plot->SetFontTTF('title', 'FreeSans.ttf', 14); $plot->SetFontTTF('y_label', 'FreeSans.ttf', 9); $plot->SetFontTTF('x_label', 'FreeSans.ttf', 10); $plot->SetFontTTF('y_title', 'FreeSans.ttf', 14); $plot->SetFontTTF('x_title', 'FreeSans.ttf', 12); // Titulos $plot->SetTitle("\nTotal de costos internos/externos\n" . "de " . $subtitulo_oficina . " en el año " . $año . "\n TOTAL Costo Interno = \$" . $total_costo_interno . "\n" . "TOTAL Costo Externo = \$" . $total_costo_externo); $plot->SetYTitle('$ COSTO'); // Etiquetas $plot->SetXTickLabelPos('none'); $plot->SetXTickPos('none'); $plot->SetYTickLabelPos('none'); $plot->SetYTickPos('none'); $plot->SetYDataLabelPos('plotin'); $plot->SetDrawXGrid(true); // Leyenda $leyenda = array('Costo Interno', 'Costo Externo'); $plot->SetLegend($leyenda); $plot->SetLegendPixels(27, 0); $plot->SetDataColors(array('beige', 'YellowGreen')); $plot->SetPlotType('bars'); $plot->SetShading(5); $plot->DrawGraph(); } } }
<?php require 'phplot/phplot.php'; require 'mem_image.php'; $graph = new PHPlot(500, 300); $graph->SetDataType('data-data'); //Specify some data $data = array(array('', 2000, 750), array('', 2010, 1700), array('', 2015, 2000), array('', 2020, 1800), array('', 2025, 1300), array('', 2030, 400)); $graph->SetDataValues($data); //Specify plotting area details $graph->SetPlotType('lines'); $graph->SetTitleFontSize('2'); $graph->SetTitle('Social Security trust fund asset estimates, in $ billions'); $graph->SetMarginsPixels(null, null, 40, null); $graph->SetPlotAreaWorld(2000, 0, 2035, 2000); $graph->SetPlotBgColor('white'); $graph->SetPlotBorderType('left'); $graph->SetBackgroundColor('white'); $graph->SetDataColors(array('red'), array('black')); //Define the X axis $graph->SetXLabel('Year'); $graph->SetXTickIncrement(5); //Define the Y axis $graph->SetYTickIncrement(500); $graph->SetPrecisionY(0); $graph->SetLightGridColor('blue'); //Disable image output $graph->SetPrintImage(false); //Draw the graph $graph->DrawGraph(); $pdf = new PDF_MemImage();
# PHPlot Example - Horizontal Error Plot require_once 'phplot.php'; # The experimental results as a series of temperature measurements: $results = array(98, 102, 100, 103, 101, 105, 110, 108, 109); # The accuracy of our measuring equipment is +/- 5% $error_factor = 0.05; # Convert the experimental results to a PHPlot data array for error plots. function reduce_data($results, $error_factor) { # Use the average of measurements to approximate the error amount: $err = $error_factor * array_sum($results) / count($results); # Build the 'data-data-yx-error' data array: $data = array(); $i = 1; foreach ($results as $value) { $data[] = array("Sample {$i}", $i++, $value, $err, $err); } return $data; } $plot = new PHPlot(800, 600); $plot->SetTitle('Experiment Results'); $plot->SetXTitle('Melting Temperature (degrees C)'); $plot->SetDataValues(reduce_data($results, $error_factor)); $plot->SetDataType('data-data-yx-error'); $plot->SetPlotType('points'); $plot->SetYTickPos('none'); $plot->SetImageBorderType('plain'); // Improves presentation in the manual $plot->SetPlotAreaWorld(80); $plot->DrawGraph();
$allDays[$allDaysKey] = $prevData; $allDaysKey++; //print"<font color=red>$prevDay=$mkday</font><br>"; } $prevDay = $mkday; $prevDOfMonth = $DayOfMonth; } if ($debug) { print_r($allDays); } if ($debug) { print "I" . $maxValue . "I"; } include "../include/phplot/phplot.php"; $graph = new PHPlot(600, 300); $graph->SetDataType("text-data"); $graph->SetDataValues($allDays); $graph->SetYTickIncrement(); $graph->y_tick_increment = ceil(@$graph->y_tick_increment); $graph->SetXLabelType("time"); $graph->SetXTimeFormat("%b %d"); if ($incoming == '2') { $graph->SetLegend(array("Outgoing")); $graph->SetDataColors(array('green')); } elseif ($incoming == '3') { $graph->SetLegend(array("Incoming")); $graph->SetDataColors(array('orange')); } else { $graph->SetLegend(array("All", "Outgoing", "Incoming")); } $graph->SetYTitle("Quantity of calls");
// set plot data and colors while ($data = $stat_query->fetch_row()) { $plot_data[] = array($data[0], $data[1]); $data_colors[] = '#' . generateRandomColors(); } break; } /** * Charts data definition end */ // Create plot if ($plot_data && $chart) { // set plot titles $plot->SetTitle($chart_title); // set data $plot->SetDataValues($plot_data); // set plot colors $plot->SetDataColors($data_colors); // set plot shading $plot->SetShading(20); // set plot type to pie $plot->SetPlotType('pie'); $plot->SetDataType('text-data-single'); // set legend foreach ($plot_data as $row) { $plot->SetLegend(implode(': ', $row)); } //Draw it $plot->DrawGraph(); } exit;
<?php # $Id$ # Testing phplot - data-data ordering require_once 'phplot.php'; # 10 lines, one for each shape: $data = array(array('', 1, 20), array('', 2, 2), array('', 3, 19), array('', 4, 3), array('', 6, 4), array('', 7, 17), array('', 8, 5), array('', 9, 16), array('', 5, 18), array('', 10, 6)); $p = new PHPlot(); $p->SetTitle('Out-of-order data-data points'); $p->SetPlotType('lines'); $p->SetDataType('data-data'); $p->SetDataValues($data); $p->SetPlotAreaWorld(0, 0, 12, 25); $p->SetXTickIncrement(1); $p->SetYTickIncrement(1); # We don't use the data labels (all set to '') so might as well turn them off: $p->SetXDataLabelPos('none'); # Draw both grids: $p->SetDrawXGrid(True); $p->SetDrawYGrid(True); # The default $p->DrawGraph();
# PHPlot / contrib / color_range : Example # $Id$ # This is a bar chart with a color gradient for the bars in each group. require_once 'phplot.php'; require_once 'color_range.php'; $bars_per_group = 10; $x_values = 4; mt_srand(1); $data = array(); for ($i = 0; $i < $x_values; $i++) { $row = array($i); for ($j = 0; $j < $bars_per_group; $j++) { $row[] = mt_rand(0, 100); } $data[] = $row; } $p = new PHPlot(800, 600); $p->SetTitle('Example - Bar Chart with gradient colors'); $p->SetDataType('text-data'); $p->SetDataValues($data); $p->SetPlotAreaWorld(0, 0, $x_values, 100); # This isn't necessary, as we do know how many data sets (bars_per_group): $n_data = count_data_sets($data, 'text-data'); # Make a gradient color map: $colors = color_range($p->SetRGBColor('SkyBlue'), $p->SetRGBColor('DarkGreen'), $n_data); $p->SetDataColors($colors); $p->SetXTickLabelPos('none'); $p->SetXTickPos('none'); $p->SetPlotType('bars'); $p->DrawGraph();
<?php # $Id$ # PHPlot test: Box plot, with image map area outlines shown. # This produces a plot image with the areas that would be in an image map # outlined. It does not produce HTML or an image map. require_once 'phplot.php'; $data = array(array('A', 1, 10, 12, 15, 17, 20), array('B', 2, 5, 10, 16, 20, 24, 2, 3, 4), array('C', 3, 12, 13, 14, 15, 16, 20), array('D', 4, 10, 11, 12, 13, 14), array('E', 5, 12, 12, 15, 18, 20), array('F', 6, 12, 14, 16, 18, 18), array('G', 7, 10, 10, 15, 20, 20)); $data_type = 'data-data'; $plot_type = 'boxes'; $title = "PHPlot Test: {$plot_type} plot with image map areas outlined"; # Callback for 'data_points': Outline the area function store_map($im, $passthru, $shape, $row, $col, $x1, $y1, $x2, $y2) { static $color = NULL; if (!isset($color)) { $color = imagecolorallocate($im, 255, 0, 0); } imagesetthickness($im, 3); imagerectangle($im, $x1, $y1, $x2, $y2, $color); imagesetthickness($im, 1); } $plot = new PHPlot(800, 600); $plot->SetTitle($title); $plot->SetImageBorderType('plain'); $plot->SetDataValues($data); $plot->SetDataType($data_type); $plot->SetPlotType($plot_type); $plot->SetPlotAreaWorld(0, 0, 8, 25); $plot->SetCallback('data_points', 'store_map'); $plot->DrawGraph();
$mode = ''; } elseif ($format == 2) { $mode = 'Data'; } // E.g. SetXDataLabelType() $subtitle[] = "Format (Set{$mode}LabelType) '{$formattype}, {$formatarg}'"; } if (empty($subtitle)) { $title .= "\nDefaults (baseline)"; } else { $title .= "\n" . implode(", ", $subtitle); } $plot = new PHPlot(800, 600); $plot->SetDefaultTTFont($phplot_test_ttfdir . $phplot_test_ttfonts['sans']); $plot->SetPlotType('stackedbars'); $plot->SetDataType($horiz ? 'text-data-yx' : 'text-data'); $plot->SetDataValues($data); $plot->SetTitle($title); if (isset($textheight)) { $plot->SetFont($horiz ? 'x_label' : 'y_label', NULL, $textheight); } if (isset($textangle)) { call_user_func(array($plot, "Set{$dep_var}DataLabelAngle"), $textangle); } if (isset($shading)) { $plot->SetShading($shading); } call_user_func(array($plot, "Set{$ind_var}TickPos"), 'none'); call_user_func(array($plot, "Set{$dep_var}DataLabelPos"), 'plotstack'); if (isset($format)) { call_user_func(array($plot, "Set{$dep_var}{$mode}LabelType"), $formattype, $formatarg);