本文整理汇总了PHP中PHPlot::DrawGraph方法的典型用法代码示例。如果您正苦于以下问题:PHP PHPlot::DrawGraph方法的具体用法?PHP PHPlot::DrawGraph怎么用?PHP PHPlot::DrawGraph使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHPlot
的用法示例。
在下文中一共展示了PHPlot::DrawGraph方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: test_case
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";
}
}
示例2: graficoBarra
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();
}
示例3: plotGraph
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();
}
示例4: doGet
public function doGet(WebAppRequest $req, WebAppResponse $res)
{
// Bootstraps Innomatic
require_once 'innomatic/core/InnomaticContainer.php';
$innomatic = InnomaticContainer::instance('innomaticcontainer');
// Sets Innomatic base URL
$baseUrl = '';
$webAppPath = $req->getUrlPath();
if (!is_null($webAppPath) && $webAppPath != '/') {
$baseUrl = $req->generateControllerPath($webAppPath, true);
}
$innomatic->setBaseUrl($baseUrl);
$innomatic->setInterface(InnomaticContainer::INTERFACE_WEB);
$home = WebAppContainer::instance('webappcontainer')->getCurrentWebApp()->getHome();
$innomatic->bootstrap($home, $home . 'core/conf/innomatic.ini');
$id = basename($req->getParameter('id'));
//$id = basename($_GET['id']);
$args = unserialize(file_get_contents(InnomaticContainer::instance('innomaticcontainer')->getHome() . 'core/temp/phplot/' . $id));
require_once 'phplot/PHPlot.php';
$graph = new PHPlot($args['width'], $args['height']);
$graph->SetIsInline('1');
//$graph->SetDataColors( array("blue",'white'),array("black") );
//$graph->$line_style = array('dashed','dashed','solid','dashed','dashed','solid');
// Base
$graph->SetDataValues($args['data']);
$graph->SetPlotType($args['plottype']);
// Appearance
$graph->SetPointShape($args['pointshape']);
$graph->SetPointSize($args['pointsize']);
$graph->SetTitle($args['title']);
// Color
$graph->SetBackgroundColor($args['backgroundcolor']);
$graph->SetGridColor($args['gridcolor']);
if (count($args['legend'])) {
$graph->SetLegend($args['legend']);
}
$graph->SetLineWidth($args['linewidth']);
$graph->SetTextColor($args['textcolor']);
$graph->SetDataColors(array(array(145, 165, 207), array(114, 167, 112), array(71, 85, 159), array(175, 83, 50), array(247, 148, 53), array(240, 231, 125), array(154, 204, 203), array(201, 164, 196)), 'black');
//$graph->data_color = array( array(145,165,207), array(114,167,112), array(71,85,159), array(175,83,50), array(247,148,53), array(240,231,125), array(154,204,203), array(201,164,196) );
//array('blue','green','yellow','red','orange');
$graph->DrawGraph();
unlink(InnomaticContainer::instance('innomaticcontainer')->getHome() . 'core/temp/phplot/' . $id);
}
示例5: testBars
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();
}
示例6: array
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();
}
}
}
示例7: renderLot
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);
}
示例8: BuatBarGraph
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();
}
示例9: BuatPieGraph
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();
}
示例10: sprintf
//.........这里部分代码省略.........
$arr = $this->leerstand_finden_monat($objekt_id, $datum_vormonat);
$anz_leer_vormonat = count($arr);
// unset($arr);
$arr_leer = $this->leerstand_finden_monat($objekt_id, $datum_heute);
$anz_leer_akt = count($arr_leer);
$anz_vermietet = $anz_einheiten_alle - $anz_leer_akt;
$leere = $this->array_intersect_recursive($arr_leer, $arr, 'EINHEIT_KURZNAME');
$vermietete = $this->array_intersect_recursive($arr, $arr_leer, 'EINHEIT_KURZNAME');
$leer_akt_string = '';
$anz__L = count($leere);
if ($anz__L > 0) {
for ($ee = 0; $ee < $anz__L; $ee++) {
$leer_akt_string .= $leere[$ee] . "\n";
}
}
$vermietet_akt_string = '';
$anz__V = count($vermietete);
// print_r($vermietete);
if ($anz__V > 0) {
for ($ee = 0; $ee < $anz__V; $ee++) {
$vermietet_akt_string .= $vermietete[$ee] . "\n";
}
}
// unset($arr);
/*
* $mvs = new mietvertraege;
* $anz_ausgezogene = $mvs->anzahl_ausgezogene_mieter($objekt_id, $jahr, $monat);
* $anz_eingezogene = $mvs->anzahl_eingezogene_mieter($objekt_id, $jahr, $monat);
*/
$bilanz_akt = $anz__V - $anz__L;
// 0-1 = -1;
$z = 0;
/*
* $data[$z][] = "ALLE\nAKTUELL";
* $data[$z][] = $anz_einheiten_alle;
*
* $data[$z][] = 0;
* $data[$z][] = 0;
*
*/
// $z++;
/*
* $data[$z][] = "LEER\nVERM.";
* $data[$z][] = 0;
* $data[$z][] = $anz_vermietet;
* $data[$z][] = $anz_leer_akt;
*/
$data[$z][] = "VOR-\nMONAT";
$data[$z][] = 0;
$data[$z][] = $anz_leer_vormonat;
$z++;
$data[$z][] = "LEER-\nAKTUELL";
$data[$z][] = 0;
$data[$z][] = 0;
$data[$z][] = $anz_leer_akt;
$z++;
$data[$z][] = "LEER\n\n{$leer_akt_string}";
$data[$z][] = '0';
$data[$z][] = '0';
$data[$z][] = $anz__L;
$z++;
$data[$z][] = "VERM.\n\n{$vermietet_akt_string}";
$data[$z][] = '0';
$data[$z][] = $anz__V;
$z++;
$data[$z][] = "BILANZ\nEIN/AUS";
if ($bilanz_akt < 0) {
$data[$z][] = 0;
$data[$z][] = 0;
$data[$z][] = 0;
$data[$z][] = 0;
$data[$z][] = $bilanz_akt;
} else {
$data[$z][] = 0;
$data[$z][] = $bilanz_akt;
}
// $z++;
$plot->SetYDataLabelPos('plotstack');
$plot->SetDataValues($data);
// Main plot title:
$plot->SetTitle("{$oo->objekt_kurzname} {$monat}/{$jahr}");
// 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);
$plot->DrawGraph();
// echo "<hr>$plot->img ";
// $plot->PrintImageFrame();
// $ima = $plot->PrintImage();
$ima = $plot->EncodeImage();
// ob_clean();
return $ima;
// echo "<img src=\"$ima\"></img>";
}
示例11: reduce_data
# 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();
示例12: plot_guifi
function plot_guifi()
{
include drupal_get_path('module', 'guifi') . '/contrib/phplot/phplot.php';
$result = db_query("select COUNT(*) as num, MONTH(FROM_UNIXTIME(timestamp_created)) as mes, YEAR(FROM_UNIXTIME(timestamp_created)) as ano from {guifi_location} where status_flag='Working' GROUP BY YEAR(FROM_UNIXTIME(timestamp_created)),MONTH(FROM_UNIXTIME(timestamp_created)) ");
$inicial = 5;
$nreg = $inicial;
$tot = 0;
$ano = 2004;
$mes = 5;
$items = 2004;
$label = "";
while ($record = db_fetch_object($result)) {
if ($record->ano >= 2004) {
if ($mes == 12) {
$mes = 1;
$ano++;
} else {
$mes++;
}
while ($ano < $record->ano || $mes < $record->mes) {
$nreg++;
if ($mes == 6) {
$label = $ano;
} else {
$label = '';
}
$data[] = array("{$label}", $nreg, $tot, '');
if ($mes == 12) {
$mes = 1;
$ano++;
} else {
$mes++;
}
}
$tot += $record->num;
$nreg++;
if ($mes == 6) {
$label = $ano;
} else {
$label = '';
}
$data[] = array("{$label}", $nreg, $tot, '');
} else {
$tot += $record->num;
}
}
while ($mes < 12) {
$nreg++;
$mes++;
if ($mes == 6) {
$label = $ano;
} else {
$label = '';
}
$data[] = array("{$label}", $nreg, "");
}
$items = ($ano - $items + 1) * 12;
if ($tot % 1000 < 30) {
$data[$nreg - $inicial - 1][3] = $tot;
$vt = floor($tot / 1000) * 1000;
$vtitle = $vt . " " . t('Nodes') . "!!!";
$tcolor = 'red';
} else {
$vtitle = t('Working nodes');
$tcolor = 'DimGrey';
}
$shapes = array('none', 'circle');
$plot = new PHPlot(200, 150);
$plot->SetPlotAreaWorld(0, 0, $items, NULL);
$plot->SetFileFormat('png');
$plot->SetDataType("data-data");
$plot->SetDataValues($data);
$plot->SetPlotType("linepoints");
$plot->SetYTickIncrement(2000);
$plot->SetXTickIncrement(12);
$plot->SetSkipBottomTick(TRUE);
$plot->SetSkipLeftTick(TRUE);
$plot->SetXAxisPosition(0);
$plot->SetPointShapes($shapes);
$plot->SetPointSizes(10);
$plot->SetTickLength(3);
$plot->SetDrawXGrid(TRUE);
$plot->SetTickColor('grey');
$plot->SetTitle($vtitle);
$plot->SetDrawXDataLabelLines(FALSE);
$plot->SetXLabelAngle(0);
$plot->SetXLabelType('custom', 'Plot1_LabelFormat');
$plot->SetGridColor('red');
$plot->SetPlotBorderType('left');
$plot->SetDataColors(array('orange'));
$plot->SetTextColor('DimGrey');
$plot->SetTitleColor($tcolor);
$plot->SetLightGridColor('grey');
$plot->SetBackgroundColor('white');
$plot->SetTransparentColor('white');
$plot->SetXTickLabelPos('none');
$plot->SetXDataLabelPos('plotdown');
$plot->SetIsInline(TRUE);
$plot->DrawGraph();
}
示例13: draw
/**
* Adds raw image data of the graph to the output.
* @param $opts FormOptions
*/
public function draw( FormOptions $opts ) {
global $wgTranslatePHPlotFont, $wgLang;
$width = $opts->getValue( 'width' );
$height = $opts->getValue( 'height' );
// Define the object
$plot = new PHPlot( $width, $height );
list( $legend, $resData ) = $this->getData( $opts );
$count = count( $resData );
$skip = intval( $count / ( $width / 60 ) - 1 );
$i = $count;
foreach ( $resData as $date => $edits ) {
if ( $skip > 0 ) {
if ( ( $count - $i ) % $skip !== 0 ) $date = '';
}
if ( strpos( $date, ';' ) !== false ) {
list( , $date ) = explode( ';', $date, 2 );
}
array_unshift( $edits, $date );
$data[] = $edits;
$i--;
}
$font = FCFontFinder::find( $wgLang->getCode() );
if ( $font ) {
$plot->SetDefaultTTFont( $font );
} else {
$plot->SetDefaultTTFont( $wgTranslatePHPlotFont );
}
$plot->SetDataValues( $data );
if ( $legend !== null ) {
$plot->SetLegend( $legend );
}
$numberFont = FCFontFinder::find( 'en' );
$plot->setFont( 'x_label', $numberFont, 8 );
$plot->setFont( 'y_label', $numberFont, 8 );
$yTitle = wfMsg( 'translate-stats-' . $opts['count'] );
// Turn off X axis ticks and labels because they get in the way:
$plot->SetYTitle( $yTitle );
$plot->SetXTickLabelPos( 'none' );
$plot->SetXTickPos( 'none' );
$plot->SetXLabelAngle( 45 );
$max = max( array_map( 'max', $resData ) );
$max = self::roundToSignificant( $max, 1 );
$max = round( $max, intval( -log( $max, 10 ) ) );
$yTick = 10;
while ( $max / $yTick > $height / 20 ) {
$yTick *= 2;
}
// If we have very small case, ensure that there is at least one tick
$yTick = min( $max, $yTick );
$yTick = self::roundToSignificant( $yTick );
$plot->SetYTickIncrement( $yTick );
$plot->SetPlotAreaWorld( null, 0, null, $max );
$plot->SetTransparentColor( 'white' );
$plot->SetBackgroundColor( 'white' );
// Draw it
$plot->DrawGraph();
}
示例14: graficarDemandaPronosticoError
function graficarDemandaPronosticoError($oData)
{
$sql = "select\r\n\t\t\t\tdate_format(c1.fecha_fin, '%d/%m/%Y') fecha_fin, \r\n\t\t\t\tcantidad_demandada, \r\n\t\t\t\tprediccion, \r\n\t\t\t\terror,\r\n\t\t\t\tsenial \r\n\t\t\t\tfrom (\r\n\t\t\t\t\tselect\r\n\t\t\t\t\tfecha_fin, \r\n\t\t\t\t\tcantidad_demandada, \r\n\t\t\t\t\tprediccion, \r\n\t\t\t\t\terror, \r\n\t\t\t\t\tsenial \r\n\t\t\t\t\tfrom predicciones t1 \r\n\t\t\t\t\tinner join periodos t2 on t1.id_periodo = t2.id_periodo \r\n\t\t\t\t\twhere id_producto= " . $oData["id_producto"] . " \r\n\t\t\t\t\torder by fecha_fin asc) c1";
$rs = getRS($sql);
$data = array();
$nro = getNrosRows($rs);
$flag = 1;
if ($nro) {
while ($row = getRow($rs)) {
if ($flag) {
$inicio = $row['fecha_fin'];
$flag = 0;
}
$nro--;
if ($nro == 0) {
$fin = $row['fecha_fin'];
}
$data[] = array('', $row['cantidad_demandada'], $row['prediccion'], $row['error'], $row['senial']);
}
}
$plot = new PHPlot(800, 465);
//$plot->SetImageBorderType('plain');
$plot->SetPlotType('lines');
//tipo de gráfico
$plot->SetDataType('text-data');
$plot->SetDataValues($data);
$plot->SetTitle('Demanda real, predicción, error y señal de rastreo. Periodo ' . $inicio . ' al ' . $fin);
//Título
$plot->SetLegend(array('Demanda real', 'Pronóstico', 'Error', 'Señal de rastreo'));
//Referencia
$plot->SetLineWidths(2);
//ancho de la linea
$plot->SetLineStyles("solid");
//estilo de la linea
$plot->SetDataColors(array('green', 'blue', 'red', 'purple'));
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
# Draw both grids:
$plot->SetDrawXGrid(True);
$plot->SetDrawYGrid(True);
$plot->DrawGraph();
}
示例15: MONTH
function solicitudes_reparacion_por_operario($id_operario, $año)
{
$this->loadModel('ReparacionSolicitud');
$this->loadModel('Funcionario');
$meses = $this->ReparacionSolicitud->query("SELECT MONTH(archivada) AS mes FROM reparacion_solicitudes WHERE estado='a' AND ejecutada=1 AND YEAR(archivada)=" . $año . " GROUP BY MONTH(archivada)");
if (!empty($meses)) {
// Inicializamos el arreglo en ceros (para los meses ke no tienen solicitudes).
$total = array();
for ($i = 1; $i <= 12; $i++) {
$total[$i][0][0] = array('cuenta' => 0);
}
foreach ($meses as $mes) {
$cant_solicitudes = $this->ReparacionSolicitud->query("SELECT COUNT(*) AS cuenta FROM reparacion_solicitudes WHERE id_funcionario=" . $id_operario . " AND estado='a' AND ejecutada=1 AND YEAR(archivada)=" . $año . " AND MONTH(archivada)=" . $mes[0]['mes']);
$total[$mes[0]['mes']] = $cant_solicitudes;
}
if (!empty($total)) {
$operario = $this->Funcionario->find('first', array('conditions' => array('Funcionario.id' => $id_operario), 'fields' => array('Funcionario.nombre')));
foreach ($total as $mes => $arreglo_mes) {
$arreglo_plot[] = array($this->meses[$mes], $arreglo_mes[0][0]['cuenta']);
}
$plot = new PHPlot(890, 450);
$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', 10);
$plot->SetFontTTF('x_label', 'FreeSans.ttf', 10);
$plot->SetFontTTF('y_title', 'FreeSans.ttf', 14);
// Titulos
$plot->SetTitle("\nSolicitudes de reparación\natendidas por " . mb_convert_case($operario['Funcionario']['nombre'], MB_CASE_TITLE, "UTF-8"));
$plot->SetXTitle('AÑO ' . $año);
$plot->SetYTitle('# SOLICITUDES');
// Etiquetas
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
$plot->SetYTickLabelPos('none');
$plot->SetYTickPos('none');
$plot->SetYDataLabelPos('plotin');
$plot->SetDrawXGrid(true);
// Leyenda
$leyenda = array('Solicitudes de Reparación');
$plot->SetLegend($leyenda);
$plot->SetLegendPixels(703, 0);
$plot->SetPlotType('bars');
$plot->SetShading(7);
$plot->DrawGraph();
}
}
}