本文整理汇总了PHP中pImage::drawLineChart方法的典型用法代码示例。如果您正苦于以下问题:PHP pImage::drawLineChart方法的具体用法?PHP pImage::drawLineChart怎么用?PHP pImage::drawLineChart使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pImage
的用法示例。
在下文中一共展示了pImage::drawLineChart方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: grafico
/**
* 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();
}
示例2: drawLineChart
/**
* Desenha um gráfico de linhas
* @param $title título do graico
* @param $data matriz contendo as séries de dados
* @param $xlabels vetor contendo os rótulos do eixo X
* @param $ylabel rótulo do eixo Y
* @param $width largura do gráfico
* @param $height altura do gráfico
* @param $outputPath caminho de saída do gráfico
*/
public function drawLineChart($title, $data, $xlabels, $ylabel, $width, $height, $outputPath)
{
// cria o modelo de dados
$modelo = new pData();
foreach ($data as $legend => $serie) {
$newdata = array();
foreach ($serie as $value) {
$newdata[$legend][] = $value == NULL ? VOID : $value;
}
$modelo->addPoints($newdata[$legend], $legend);
}
$modelo->setAxisName(0, $ylabel);
$modelo->addPoints($xlabels, "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/pf_arma_five.ttf", "FontSize" => 6));
// define a área do gráfico
$imagem->setGraphArea(60, 40, $width - 50, $height - 30);
// define a escala do gráfico
$scaleSettings = array("XMargin" => 10, "YMargin" => 10, "CycleBackground" => TRUE, "GridR" => 200, "GridG" => 200, "GridB" => 200);
$imagem->drawScale($scaleSettings);
// liga a suavização de linhas
$imagem->Antialias = TRUE;
// desenha o gráfico de linhas
$imagem->drawLineChart(array('DisplayValues' => TRUE));
// desenha a legenda do gráfico
$imagem->drawLegend(60, $height - 13, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL));
// grava o gráfico em um arquivo
$imagem->render($outputPath);
}
示例3: eval_ccpc_genGraphLine
/**
* eval_ccpc_genGraphLine - Génère un graphique de type Line simple sous forme d'image au format PNG
*
* @category : eval_ccpc_functions
* @param array $data Données à partir desquelles le graphique est généré
* @return string URL de l'image générée
*
* @Author Ali Bellamine
*
* Structure de $data :<br>
* ['option'] => (array) Liste des labels disponibles<br>
* ['data'][nom de la catégorie][nom du label] => (int) Valeur du label<br>
* ['settings']['min'] => (int) Valeur (ordonnée) minimale<br>
* ['settings']['max'] => (int) Valeur (ordonnée) maximale<br>
* ['settings']['height'] => (int) Hauteur du graphique (en px)<br>
* ['settings']['width'] => (int) Largeur du graphique (en px)
*
*/
function eval_ccpc_genGraphLine($data)
{
// On vérifie les données fournit
if (isset($data) && isset($data['data']) && count($data['data']) > 0 && isset($data['option']) && count($data['option']) > 0) {
// On récupère le hash de $data
$hash = md5(json_encode($data));
// Chemin du fichier
$filePath = PLUGIN_PATH . 'cache/' . $hash . '.png';
$filePathURI = ROOT . 'evaluations/ccpc/cache/' . $hash . '.png';
// Si le hash existe déjà : on renvoie le lien de l'image // sinon en crée le graphique
if (is_file($filePath)) {
return $filePathURI;
} else {
// On crée l'image
/* On inclut la librairie */
require_once PLUGIN_PATH . 'core/pChart2.1.4/class/pData.class.php';
require_once PLUGIN_PATH . 'core/pChart2.1.4/class/pDraw.class.php';
require_once PLUGIN_PATH . 'core/pChart2.1.4/class/pImage.class.php';
/* On crée l'objet pData */
// Préparation des données
$tempDataArray = array();
// Contient les données chiffrés
foreach ($data['data'] as $tempDataLegend => $tempDataValue) {
if (is_array($tempDataValue)) {
foreach ($data['option'] as $key) {
if (isset($tempDataValue[$key]) && is_numeric($tempDataValue[$key])) {
$tempDataArray[$tempDataLegend][$key] = $tempDataValue[$key];
} else {
$tempDataArray[$tempDataLegend][$key] = VOID;
}
}
} else {
return FALSE;
}
}
$MyData = new pData();
foreach ($tempDataArray as $key => $value) {
$MyData->addPoints($value, $key);
}
$MyData->addPoints($data['option'], 'Label');
$MyData->setAbscissa("Label");
$MyData->setSerieDescription("Label", "Label");
/* On crée l'objet pChart */
if (isset($data['settings']['width'])) {
$width = $data['settings']['width'];
} else {
$width = 600;
}
if (isset($data['settings']['height'])) {
$height = $data['settings']['height'];
} else {
$height = 300;
}
$myPicture = new pImage($width, $height, $MyData, TRUE);
$myPicture->setFontProperties(array("FontName" => PLUGIN_PATH . "core/pChart2.1.4/fonts/MankSans.ttf", "FontSize" => 14, "R" => 80, "G" => 80, "B" => 80));
// On détermine les limites
$myPicture->setGraphArea(0, 0, $width, $height - 30);
$scaleSettings = array("DrawSubTicks" => TRUE);
if (isset($data['settings']['min']) && is_numeric($data['settings']['min']) && isset($data['settings']['max']) && is_numeric($data['settings']['max']) && $data['settings']['min'] < $data['settings']['max']) {
// Prise en charge de la possibilité d'imposer le min et le max
$scaleSettings['Mode'] = SCALE_MODE_MANUAL;
$scaleSettings['ManualScale'][0] = array('Min' => $data['settings']['min'], 'Max' => $data['settings']['max']);
// Min et Max sur l'axe des ordonnées
}
$myPicture->drawScale($scaleSettings);
$myPicture->drawLegend(10, 10, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL));
$settings = array("Surrounding" => -30, "InnerSurrounding" => 30, "DisplayValues" => TRUE, "ORIENTATION_HORIZONTAL" => TRUE);
$myPicture->drawLineChart($settings);
$myPicture->render($filePath);
return $filePathURI;
}
} else {
return FALSE;
}
}
示例4: pData
<?php
include "class/pData.class.php";
include "class/pDraw.class.php";
include "class/pImage.class.php";
$myData = new pData();
$myData->addPoints(array(64, 187, 395, 249, 109, 129, 136, 133, 134, 95, 72, 85), "Serie1");
$myData->setSerieDescription("Serie1", "Serie 1");
$myData->setSerieOnAxis("Serie1", 0);
$myData->addPoints(array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"), "Absissa");
$myData->setAbscissa("Absissa");
$myData->setAxisPosition(0, AXIS_POSITION_LEFT);
$myData->setAxisName(0, "Rejistu sira");
$myData->setAxisUnit(0, "");
$myPicture = new pImage(700, 230, $myData);
$myPicture->drawRectangle(0, 0, 699, 229, array("R" => 0, "G" => 0, "B" => 0));
$myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 50, "G" => 50, "B" => 50, "Alpha" => 20));
$myPicture->setFontProperties(array("FontName" => "fonts/Forgotte.ttf", "FontSize" => 14));
$TextSettings = array("Align" => TEXT_ALIGN_MIDDLEMIDDLE, "R" => 5, "G" => 0, "B" => 79);
$myPicture->drawText(350, 25, "Andamentu Geral Rejistru Kliente", $TextSettings);
$myPicture->setShadow(FALSE);
$myPicture->setGraphArea(50, 50, 675, 190);
$myPicture->setFontProperties(array("R" => 0, "G" => 0, "B" => 0, "FontName" => "fonts/GeosansLight.ttf", "FontSize" => 10));
$Settings = array("Pos" => SCALE_POS_LEFTRIGHT, "Mode" => SCALE_MODE_FLOATING, "LabelSkip" => 1, "LabelingMethod" => LABELING_ALL, "GridR" => 186, "GridG" => 177, "GridB" => 185, "GridAlpha" => 50, "TickR" => 240, "TickG" => 17, "TickB" => 17, "TickAlpha" => 50, "LabelRotation" => 0, "CycleBackground" => 1, "DrawXLines" => 1, "DrawYLines" => ALL);
$myPicture->drawScale($Settings);
$myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 50, "G" => 50, "B" => 50, "Alpha" => 10));
$Config = array("DisplayValues" => 1, "BreakVoid" => 0, "BreakR" => 234, "BreakG" => 55, "BreakB" => 26);
$myPicture->drawLineChart($Config);
$myPicture->stroke();
示例5: drawImage
public function drawImage()
{
$qr_result = $this->values;
//var_dump($qr_result);die();
$va_columns = $this->parameters["columns"];
$width = $this->parameters["width"];
$format = $this->parameters["format"];
$va_charting_columns = $this->parameters["charting_columns"];
$va_chart_types = $this->parameters["chart_types"];
$qr_result->seek();
if ($qr_result->numRows() == 0) {
//if no result nothing to do
return false;
}
// Loading chart format specifications
// TODO : this coding part should be out of this function, sending values in 1 parameter
if (is_array($va_chart_types)) {
foreach ($va_chart_types as $type => $settings) {
if ($type == $format) {
$chart_type = $settings["googletype"];
$message = $settings["message"];
}
}
}
/* Create and populate the pData object */
$MyData = new pData();
// Fulfillment of the results
$va_row_no = 0;
$va_content = array();
while ($qr_result->nextRow()) {
$va_column_no = 0;
foreach ($va_columns as $va_column => $va_column_label) {
// only render columns specified in XML field charting_columns
if (in_array($va_column_label, $va_charting_columns)) {
$va_content[$va_column_label][$va_row_no] = $qr_result->get($va_column_label);
$va_column_no++;
}
}
$va_row_no++;
}
//var_dump($va_content);
$va_row_no = 0;
foreach ($va_charting_columns as $va_column_label) {
//print "MyData->addPoints(\"".implode("\",\"",$va_content[$va_column_label])."\",\"".$va_column_label."\");<br/>";
$MyData->addPoints($va_content[$va_column_label], $va_column_label);
if ($va_row_no == 0) {
//print "MyData->setAbscissa(\"Labels\")<br/>";
$MyData->setAbscissa($va_column_label);
} else {
//print "MyData->setSerieDescription(\"".$va_column_label."\",\"".$va_column_label."\");<br/>";
$MyData->setSerieDescription($va_column_label, $va_column_label);
}
$va_row_no++;
}
/* Create the pChart object */
$myPicture = new pImage($width, $width / 2, $MyData);
/* Set the common properties */
$myPicture->setFontProperties(array("FontName" => __CA_STATISTICSVIEWER_CLASS_DIR__ . "/fonts/verdana.ttf", "FontSize" => 0.014 * $width, "R" => 80, "G" => 80, "B" => 80));
$RectangleSettings = array("R" => 200, "G" => 200, "B" => 200);
$myPicture->drawRectangle(1, 1, $width - 1, $width / 2 - 1, $RectangleSettings);
$myPicture->setGraphArea($width / 9, $width / 10, $width * 0.75, $width * 0.4);
// if not pie, draw the legend
if ($format != "pie") {
$myPicture->drawLegend($width * 0.8, $width * 0.05, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL));
}
switch ($format) {
case "bar":
$myPicture->drawScale(array("Pos" => SCALE_POS_TOPBOTTOM, "DrawSubTicks" => FALSE, "RemoveYAxis" => TRUE, "GridAlpha" => 90, "DrawXLines" => FALSE));
$myPicture->drawBarChart();
break;
case "column":
$myPicture->drawScale(array("DrawSubTicks" => FALSE, "RemoveYAxis" => TRUE, "GridAlpha" => 90, "DrawXLines" => FALSE));
$myPicture->drawBarChart();
break;
case "step":
$myPicture->drawScale(array("DrawXLines" => FALSE, "DrawYLines" => ALL, "GridR" => 127, "GridG" => 127, "GridB" => 127));
$myPicture->drawStepChart(array("DisplayValues" => TRUE, "DisplayColor" => DISPLAY_AUTO));
break;
case "area":
$myPicture->drawScale(array("DrawXLines" => FALSE, "DrawYLines" => ALL, "GridR" => 127, "GridG" => 127, "GridB" => 127));
$myPicture->drawAreaChart(array("DisplayValues" => TRUE, "DisplayColor" => DISPLAY_AUTO));
break;
case "pie":
$PieChart = new pPie($myPicture, $MyData);
$PieChart->draw2DPie(0.4 * $width, 0.25 * $width, array("WriteValues" => PIE_VALUE_PERCENTAGE, "ValueR" => 95, "ValueG" => 95, "ValueB" => 95, "ValuePadding" => 0.03 * $width, "Radius" => 0.16 * $width, "SecondPass" => TRUE, "Border" => TRUE, "Precision" => 0));
$myPicture->setShadow(FALSE);
$myPicture->setFontProperties(array("FontName" => __CA_STATISTICSVIEWER_CLASS_DIR__ . "/fonts/verdana.ttf", "FontSize" => 0.018 * $width, "R" => 80, "G" => 80, "B" => 80));
$PieChart->drawPieLegend(0.8 * $width, 0.05 * $width, array("Style" => LEGEND_NOBORDER, "BoxSize" => $width / 60, "FontR" => 0, "FontG" => 0, "FontB" => 0));
break;
case "line":
default:
$myPicture->drawScale(array("DrawXLines" => FALSE, "DrawYLines" => ALL, "GridR" => 127, "GridG" => 127, "GridB" => 127));
$myPicture->drawLineChart(array("DisplayValues" => TRUE, "DisplayColor" => DISPLAY_AUTO));
break;
}
/* Render the picture (choose the best way) */
$myPicture->autoOutput();
}
示例6: array
$myPicture->setFontProperties(array("FontName" => "pChart/fonts/Forgotte.ttf", "FontSize" => 8, "R" => 0, "G" => 0, "B" => 0));
$myPicture->drawText(15, 22, "HAL10K by intrd", array("FontSize" => 15, "Align" => TEXT_ALIGN_BOTTOMLEFT));
//$myPicture->drawText(15,22,"HAL10K by intrd",array("FontSize"=>15,"Align"=>TEXT_ALIGN_BOTTOMLEFT));
$myPicture->drawText(450, 20, "Período: " . $startdate . " - " . $enddate . "", array("FontSize" => 13, "Align" => TEXT_ALIGN_BOTTOMLEFT));
$myPicture->drawText(651, 23, $nextmov, array("FontSize" => 13, "Align" => TEXT_ALIGN_BOTTOMLEFT));
$myPicture->setFontProperties(array("FontName" => "pChart/fonts/pf_arma_five.ttf", "FontSize" => 10, "R" => 0, "G" => 0, "B" => 0));
$myPicture->setGraphArea(20 * 2, 20, 650 * 2, 200 * 2);
$scaleSettings = array("XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridR" => 200, "GridG" => 200, "GridB" => 500, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE);
$myPicture->drawScale($scaleSettings);
$myPicture->Antialias = TRUE;
$MyData->setSerieDrawable("BTC/USD", TRUE);
$MyData->setSerieDrawable("EMAshort", TRUE);
$MyData->setSerieDrawable("EMAlong", TRUE);
$MyData->setSerieDrawable("Buy", FALSE);
$MyData->setSerieDrawable("Sell", FALSE);
$myPicture->drawLineChart(array("DisplayValues" => FALSE));
$MyData->setSerieDrawable("BTC/USD", FALSE);
$MyData->setSerieDrawable("EMAshort", FALSE);
$MyData->setSerieDrawable("EMAlong", FALSE);
$MyData->setSerieDrawable("Buy", TRUE);
$MyData->setSerieDrawable("Sell", TRUE);
$myPicture->drawPlotChart(array("DisplayValues" => TRUE, "PlotBorder" => FALSE, "BorderSize" => 2, "Surrounding" => -60, "BorderAlpha" => 80));
$MyData->setSerieDrawable("BTC/USD", TRUE);
$MyData->setSerieDrawable("EMAshort", TRUE);
$MyData->setSerieDrawable("EMAlong", TRUE);
$MyData->setSerieDrawable("Buy", TRUE);
$MyData->setSerieDrawable("Sell", TRUE);
//$myPicture->writeBounds();
$myPicture->drawLegend(121, 10, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL, "FontR" => 0, "FontG" => 0, "FontB" => 0));
/* $last=explode(",",end($F1));
if ($last[7]<=1) {
示例7: pImage
$MyData->setAbscissaName("Time (years)");
/* Create the pChart object */
$myPicture = new pImage(700, 230, $MyData);
/* Turn of Antialiasing */
$myPicture->Antialias = FALSE;
/* Draw the background and the border */
$myPicture->drawFilledRectangle(0, 0, 699, 229, array("R" => 200, "G" => 200, "B" => 200));
$myPicture->drawGradientArea(0, 0, 700, 230, DIRECTION_VERTICAL, array("StartR" => 220, "StartG" => 220, "StartB" => 220, "EndR" => 100, "EndG" => 100, "EndB" => 100, "Alpha" => 30));
$myPicture->drawRectangle(0, 0, 699, 229, array("R" => 0, "G" => 0, "B" => 0));
/* Write the chart title */
$myPicture->setFontProperties(array("FontName" => "../fonts/Forgotte.ttf", "FontSize" => 11));
$myPicture->drawText(150, 35, "Size by time generations", array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE));
/* Set the default font */
$myPicture->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6));
/* Define the chart area */
$myPicture->setGraphArea(40, 40, 680, 200);
/* Draw the scale */
$scaleSettings = array("LabelSkip" => 4, "XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridAlpha" => 30, "GridR" => 140, "GridG" => 140, "GridB" => 140, "DrawSubTicks" => TRUE);
$myPicture->drawScale($scaleSettings);
/* Turn on Antialiasing */
$myPicture->Antialias = TRUE;
/* Draw the line chart */
$myPicture->drawZoneChart("Bounds 1", "Bounds 2", array("LineAlpha" => 100, "AreaR" => 230, "AreaG" => 230, "AreaB" => 230, "AreaAlpha" => 20, "LineTicks" => 3));
$MyData->setSerieDrawable(array("Bounds 1", "Bounds 2"), FALSE);
/* Draw the line chart */
$myPicture->drawLineChart();
$myPicture->drawPlotChart(array("PlotBorder" => TRUE, "PlotSize" => 2, "BorderSize" => 3, "Surrounding" => 60, "BorderAlpha" => 50));
/* Write the chart legend */
$myPicture->drawLegend(640, 20, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL));
/* Render the picture (choose the best way) */
$myPicture->autoOutput("pictures/example.drawZoneChart.png");
示例8: pData
//.........这里部分代码省略.........
// Make scales based on 5% of the range of values
$scaleMax = round($range * 0.05 + $scaleMax);
if ($scaleMin < 0) {
$scaleMin = $scaleMin - round($range * 0.05);
}
$AxisBoundaries = array(0 => array("Min" => $scaleMin, "Max" => $scaleMax));
$scaleSettings["Mode"] = SCALE_MODE_MANUAL;
$scaleSettings["ManualScale"] = $AxisBoundaries;
} else {
if ($barexists) {
$scaleMin = "Unknown";
$scaleMax = 0;
foreach ($this->plot as $k => $v) {
if ($v["type"] == "BAR" || $v["type"] == "STACKEDBAR") {
$series = $v["name"] . $k;
$min = $graphData->getMin($series);
if ($scaleMin == "Unknown" || $min < $scaleMin) {
$scaleMin = $min;
}
$max = $graphData->getMax($series);
if ($scaleMax == "Unknown" || $max > $scaleMax) {
$scaleMax = $max;
}
}
}
if ($scaleMin > 0) {
$scaleMin = 0;
}
$range = $scaleMax - $scaleMin;
// Make scales based on 5% of the range of values
$scaleMax = round($range * 0.05 + $scaleMax);
if ($scaleMin < 0) {
$scaleMin = $scaleMin - round($range * 0.05);
}
$AxisBoundaries = array(0 => array("Min" => $scaleMin, "Max" => $scaleMax));
$scaleSettings["Mode"] = SCALE_MODE_MANUAL;
$scaleSettings["ManualScale"] = $AxisBoundaries;
}
}
$graphImage->drawScale($scaleSettings);
// If there's a Pie chart we want to draw different legends
$piechart = false;
foreach ($this->plot as $k => $v) {
foreach ($this->plot as $k1 => $v1) {
$series = $v1["name"] . $k1;
$graphData->setSerieDrawable($series, FALSE);
}
$series = $v["name"] . $k;
$graphData->setSerieDrawable($series, TRUE);
switch ($v["type"]) {
case "PIE":
$piechart = true;
$pie = new pPie($graphImage, $graphData);
//$pie->draw2DPie($width_actual / 2,$height_actual / 2,80,array("DrawLabels"=>TRUE,"LabelStacked"=>TRUE,"Border"=>TRUE));
$pie->draw2DPie($width_actual / 2, $height_actual / 2, 80, array("WriteValues" => PIE_VALUE_PERCENTAGE, "DataGapAngle" => 10, "DataGapRadius" => 6, "Border" => TRUE, "BorderR" => 255, "BorderG" => 255, "BorderB" => 255));
break;
case "PIE3D":
$piechart = true;
$pie = new pPie($graphImage, $graphData);
$pie->draw3DPie($this->width_actual / 2, $this->height_actual / 2, 80, array("SecondPass" => FALSE));
break;
case "STACKEDBAR":
case "BAR":
if ($stackeddrawn) {
break;
}
if ($barexists) {
foreach ($this->plot as $k1 => $v1) {
if ($v1["type"] == "BAR" || $v1["type"] == "STACKEDBAR") {
$graphData->setSerieDrawable($v1["name"] . $k1, TRUE);
}
}
}
$stackeddrawn = true;
$settings = array("Surrounding" => -30, "InnerSurrounding" => 30);
if ($stackedexists) {
$graphImage->drawStackedBarChart($settings);
} else {
$graphImage->drawBarChart($settings);
}
break;
case "LINE":
default:
if (count($v["data"]) == 1) {
$v["data"][] = 0;
}
$graphImage->drawLineChart($settings);
break;
}
}
$graphData->drawAll();
if ($piechart) {
$pie->drawPieLegend($this->width_actual - 100, 30, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_VERTICAL));
} else {
$graphImage->drawLegend($this->width_actual - 180, 22, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_VERTICAL));
}
$graphImage->setShadow(TRUE, array("X" => 0, "Y" => 0, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10));
$graphImage->render($outputfile);
return true;
}
示例9: createGraphe
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");
}
示例10: pch_vertical_graph
//.........这里部分代码省略.........
$MyData->addPoints($values, $point_id);
if (!empty($rgb_color)) {
$MyData->setPalette($point_id, array("R" => $rgb_color[$i]['color']["R"], "G" => $rgb_color[$i]['color']["G"], "B" => $rgb_color[$i]['color']["B"], "BorderR" => $rgb_color[$i]['border']["R"], "BorderG" => $rgb_color[$i]['border']["G"], "BorderB" => $rgb_color[$i]['border']["B"], "Alpha" => $rgb_color[$i]['alpha']));
/*$palette_color = array();
if (isset($rgb_color[$i]['color'])) {
$palette_color["R"] = $rgb_color[$i]['color']["R"];
$palette_color["G"] = $rgb_color[$i]['color']["G"];
$palette_color["B"] = $rgb_color[$i]['color']["B"];
}
if (isset($rgb_color[$i]['color'])) {
$palette_color["BorderR"] = $rgb_color[$i]['border']["R"];
$palette_color["BorderG"] = $rgb_color[$i]['border']["G"];
$palette_color["BorderB"] = $rgb_color[$i]['border']["B"];
}
if (isset($rgb_color[$i]['color'])) {
$palette_color["Alpha"] = $rgb_color[$i]['Alpha'];
}
$MyData->setPalette($point_id, $palette_color);*/
}
$MyData->setSerieWeight($point_id, 1);
}
//$MyData->addPoints($data,"Yaxis");
$MyData->setAxisName(0, $yaxisname);
$MyData->addPoints($index, "Xaxis");
$MyData->setSerieDescription("Xaxis", $xaxisname);
$MyData->setAbscissa("Xaxis");
/* Create the pChart object */
$myPicture = new pImage($width, $height, $MyData);
/* Turn of Antialiasing */
$myPicture->Antialias = $antialiasing;
/* Add a border to the picture */
//$myPicture->drawRectangle(0,0,$width,$height,array("R"=>0,"G"=>0,"B"=>0));
/* Set the default font */
$myPicture->setFontProperties(array("FontName" => $font, "FontSize" => $font_size));
if (isset($legend)) {
/* Set horizontal legend if is posible */
$legend_mode = LEGEND_HORIZONTAL;
$size = $myPicture->getLegendSize(array("Style" => LEGEND_NOBORDER, "Mode" => $legend_mode));
if ($size['Width'] > $width - 5) {
$legend_mode = LEGEND_VERTICAL;
$size = $myPicture->getLegendSize(array("Style" => LEGEND_NOBORDER, "Mode" => $legend_mode));
}
/* Write the chart legend */
$myPicture->drawLegend($width - $size['Width'], 8, array("Style" => LEGEND_NOBORDER, "Mode" => $legend_mode));
}
//Calculate the bottom margin from the size of string in each index
$max_chars = 0;
foreach ($index as $string_index) {
if (empty($string_index)) {
continue;
}
$len = strlen($string_index);
if ($len > $max_chars) {
$max_chars = $len;
}
}
$margin_bottom = 10 * $max_chars;
$water_mark_height = 0;
$water_mark_width = 0;
if (!empty($water_mark)) {
$size_water_mark = getimagesize($water_mark);
$water_mark_height = $size_water_mark[1];
$water_mark_width = $size_water_mark[0];
$myPicture->drawFromPNG($width - $water_mark_width, $height - $water_mark_height - $margin_bottom, $water_mark);
}
if (isset($size['Height'])) {
/* Define the chart area */
$myPicture->setGraphArea(40, $size['Height'], $width - $water_mark_width, $height - $margin_bottom);
} else {
/* Define the chart area */
$myPicture->setGraphArea(40, 5, $width - $water_mark_width, $height - $margin_bottom);
}
/* Draw the scale */
$scaleSettings = array("GridR" => 200, "GridG" => 200, "GridB" => 200, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE, "Mode" => SCALE_MODE_START0, "LabelRotation" => 60, "XMargin" => 0);
$myPicture->drawScale($scaleSettings);
/* Turn on shadow computing */
//$myPicture->setShadow(TRUE,array("X"=>0,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));
switch ($graph_type) {
case 'stacked_area':
$ForceTransparency = "-1";
break;
default:
$ForceTransparency = "50";
break;
}
/* Draw the chart */
$settings = array("ForceTransparency" => $ForceTransparency, "Gradient" => TRUE, "GradientMode" => GRADIENT_EFFECT_CAN, "DisplayValues" => $show_values, "DisplayZeroValues" => FALSE, "DisplayR" => 100, "DisplayZeros" => FALSE, "DisplayG" => 100, "DisplayB" => 100, "DisplayShadow" => TRUE, "Surrounding" => 5, "AroundZero" => FALSE);
switch ($graph_type) {
case "stacked_area":
case "area":
$myPicture->drawAreaChart($settings);
break;
case "line":
$myPicture->drawLineChart($settings);
break;
}
/* Render the picture */
$myPicture->stroke();
}
示例11: drawOverAllImage
private function drawOverAllImage($date)
{
$res1 = $this->dataForGraph($date, 0);
$res2 = $this->dataForGraph($date, 1);
$MyData = new pData();
$MyData->addPoints($res1['percents'], "Load in % for server 1");
$MyData->addPoints($res2['percents'], "Load in % for server 2");
$MyData->setAxisName(0, "Participants");
$MyData->addPoints($res1['times'], "Labels");
// $MyData->addPoints($res2['times'], "Labels");
$MyData->setSerieDescription("Labels", "Months");
$MyData->setAbscissa("Labels");
/* Create the pChart object */
$myPicture = new pImage(1200, 560, $MyData);
/* Turn of Antialiasing */
$myPicture->Antialias = TRUE;
/* Add a border to the picture */
//$myPicture->drawRectangle(0,0,890,290,array("R"=>0,"G"=>0,"B"=>0));
/* Write the chart title */
$myPicture->setFontProperties(array("FontName" => CORE_REPOSITORY_REAL_PATH . "class/pChart/fonts/Forgotte.ttf", "FontSize" => 11));
$myPicture->drawText(200, 35, "All Servers Resource Usage (" . $date . ")", array("FontSize" => 20, "Align" => TEXT_ALIGN_BOTTOMMIDDLE));
/* Set the default font */
$myPicture->setFontProperties(array("FontName" => CORE_REPOSITORY_REAL_PATH . "class/pChart/fonts/pf_arma_five.ttf", "FontSize" => 8));
/* Define the chart area */
$myPicture->setGraphArea(60, 40, 1100, 500);
$AxisBoundaries = array(0 => array("Min" => 0, "Max" => 100));
/* Draw the scale */
$scaleSettings = array("XMargin" => 10, "YMargin" => 10, "Floating" => TRUE, "GridR" => 200, "GridG" => 200, "GridB" => 200, "DrawSubTicks" => TRUE, "CycleBackground" => TRUE, "LabelSkip" => 1, 'Mode' => SCALE_MODE_MANUAL, "ManualScale" => $AxisBoundaries);
$myPicture->drawScale($scaleSettings);
$myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10));
/* Draw the stacked area chart */
$myPicture->drawStackedAreaChart(array("DrawLine" => TRUE, "LineSurrounding" => -20));
/* Turn on Antialiasing */
$myPicture->Antialias = TRUE;
/* Draw the line chart */
$myPicture->drawLineChart();
/* Write the chart legend */
$myPicture->drawLegend(800, 20, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL));
/* Render the picture (choose the best way) */
//$myPicture->autoOutput(App::$instance->opt->fizPath."class/pChart/pictures/example.drawLineChart.simple.png");
$myPicture->render(CORE_REPOSITORY_REAL_PATH . "class/pChart/pictures/load_at_" . $date . "_on_overall.png");
$path = CORE_REPOSITORY_HTTP_PATH . "class/pChart/pictures/load_at_" . $date . "_on_overall.png";
if (ST::isAjaxRequest()) {
$data = [];
print json_encode($data['path'] = $path);
} else {
return $path;
}
}
示例12: elseif
$Test->drawAreaChart(array("AroundZero" => FALSE));
// заполнение снизу до кривой графика
// $Test->drawAreaChart(array("AroundZero"=>TRUE)); // заполнение от нуля до кривой графика
} elseif ($_GET['gtype'] == 'bar') {
//рисуем столбы
//$Test->drawFilledRectangle(60,60,450,190,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10));
//$Test->drawScale(array("DrawSubTicks"=>TRUE));
$Test->setShadow(TRUE, array("X" => 1, "Y" => 1, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10));
//$Test->setFontProperties(array("FontName"=>"../fonts/pf_arma_five.ttf","FontSize"=>6));
$Test->drawBarChart(array("DisplayValues" => FALSE, "Interleave" => 0.2, "Gradient" => TRUE, "DisplayColor" => DISPLAY_AUTO, "Rounded" => FALSE, "AroundZero" => TRUE, "Surrounding" => 0));
} else {
//рисуем прямолинейный график
//$Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());
//$Test->clearShadow();
//$Test->drawFilledLineGraph($DataSet->GetData(),$DataSet->GetDataDescription(), 30);
$Test->drawLineChart(array("DisplayValues" => FALSE, "BreakVoid" => FALSE, "VoidTicks" => 0, "DisplayColor" => DISPLAY_AUTO));
//$Test->drawAreaChart(array("AroundZero"=>FALSE)); // заполнение снизу до кривой графика
$Test->drawAreaChart(array("AroundZero" => TRUE));
// заполнение от нуля до кривой графика
}
/* Render the picture (choose the best way) */
$path_to_file = './cached/' . md5($_SERVER['REQUEST_URI']) . '.png';
imagepng($Test->autoOutput($path_to_file));
Header("Content-type:image/png");
$fsize = filesize($path_to_file);
header("Content-Length:" . (string) $fsize);
$buff_length = 200 * 1024;
if ($buff_length > $fsize) {
$buff_length = $fsize;
}
if ($buff_length > 0) {
示例13: htmltorgb
}
}
$stackeddrawn = true;
$settings = array("Surrounding" => -30, "InnerSurrounding" => 30);
if ($stackedexists) {
$graphImage->drawStackedBarChart($settings);
} else {
$graphImage->drawBarChart($settings);
}
break;
case "LINE":
default:
if (count($v["data"]) == 1) {
$v["data"][] = 0;
}
$graphImage->drawLineChart($settings);
break;
}
}
$graphData->drawAll();
if ($piechart) {
$pie->drawPieLegend($width - 100, 30, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_VERTICAL));
} else {
$graphImage->drawLegend($width - 180, 22, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_VERTICAL));
}
$graphImage->setShadow(TRUE, array("X" => 0, "Y" => 0, "R" => 0, "G" => 0, "B" => 0, "Alpha" => 10));
$graphImage->autoOutput("pictures/example.drawBarChart.simple.png");
function htmltorgb($color)
{
if ($color[0] == '#') {
$color = substr($color, 1);
示例14: makeChartArticle
static function makeChartArticle($type, $data, $events, $colors, $lang = "en")
{
global $wt, $I18N;
$font = PCHART_FONTS_PATH . "/LiberationSans-Regular.ttf";
if (in_array($wt->uselang, array("zh", "ja", "jp", "ko"))) {
$font = PCHART_FONTS_PATH . "/wqy-microhei.ttf";
}
if (in_array($wt->uselang, array("he", "bn", "vi", "fa", "ar", "th", "ta", "ka", "hi", "hy", "ml"))) {
$font = PCHART_FONTS_PATH . "/unifont.ttf";
}
$maxsizeTotal = 0;
$maxeditTotal = 0;
$u = 0;
foreach ($data as $year => $values) {
$years[] = $year;
$all[] = $values["all"];
$minor[] = $values["minor"];
$anon[] = $values["anon"];
$maxsize = 0;
//get the max size of each month
foreach ($values["months"] as $i => $mdetails) {
if ($mdetails["size"] > $maxsize) {
$maxsize = $mdetails["size"];
}
}
$tmpssize[] = $maxsize ? $maxsize : $tmpssize[$u - 1];
$linemarker[] = 1;
$eventmarker[] = isset($events[$year]["protect"]) ? 10 + $events[$year]["protect"] * 3 : 0;
$u++;
}
$msgAll = $I18N->msg('all');
$msgMinor = $I18N->msg('minor');
$msgPagesize = $I18N->msg('pagesize');
$MyData = new pData();
$MyData->addPoints($all, "all");
$MyData->addPoints($minor, "minor");
$MyData->addPoints($anon, "anon");
$MyData->addPoints($tmpssize, "size");
$MyData->addPoints($eventmarker, "protect");
$MyData->setSerieOnAxis("all", 0);
$MyData->setSerieOnAxis("minor", 0);
$MyData->setSerieOnAxis("anon", 0);
$MyData->setSerieOnAxis("size", 1);
$MyData->setSerieOnAxis("protect", 1);
$MyData->setAxisPosition(1, AXIS_POSITION_RIGHT);
$MyData->setAxisName(0, "Edits");
$MyData->setAxisName(1, "Size (kb)");
$MyData->Data["Series"]["all"]["Color"] = self::hex2rgb($colors["all"], 200, true);
$MyData->Data["Series"]["minor"]["Color"] = self::hex2rgb($colors["minor"], 200, true);
$MyData->Data["Series"]["anon"]["Color"] = self::hex2rgb($colors["anon"], 200, true);
$MyData->Data["Series"]["size"]["Color"] = self::hex2rgb($colors["size"], 200, true);
$MyData->Data["Series"]["protect"]["Color"] = self::hex2rgb($colors["protect"], 200, true);
$MyData->addPoints($years, "Labels");
$MyData->setAbscissa("Labels");
$myPicture = new pImage(1000, 300, $MyData, TRUE);
$myPicture->setFontProperties(array("FontName" => $font, "FontSize" => 12, "R" => 34, "G" => 34, "B" => 34));
$myPicture->setGraphArea(50, 30, 820, 270);
$myPicture->setFontProperties(array("FontName" => $font, "FontSize" => 8));
$scaleSettings = array("AxisR" => 134, "AxisG" => 134, "AxisB" => 134, "AxisAplha" => 40, "DrawSubTicks" => TRUE, "CycleBackground" => false, "LabelRotation" => 0, "LabelSkip" => 0, "Mode" => SCALE_MODE_START0);
$myPicture->drawScale($scaleSettings);
$settings = array("Surrounding" => -30, "InnerSurrounding" => 10, "RecordImageMap" => false, "DisplayValues" => false);
$MyData->setSerieDrawable('size', false);
$MyData->setSerieDrawable('protect', false);
$myPicture->drawBarChart($settings);
$MyData->setSerieDrawable('size', true);
$MyData->setSerieDrawable('all', false);
$MyData->setSerieDrawable('minor', false);
$MyData->setSerieDrawable('anon', false);
$MyData->setSerieDrawable('protect', false);
$myPicture->drawLineChart();
$MyData->setSerieDrawable('protect', true);
$MyData->setSerieDrawable('size', true);
$myBubbleChart = new pBubble($myPicture, $MyData);
$bubbleDataSeries = array("size");
$bubbleWeightSeries = array("protect");
$myBubbleChart->bubbleScale($bubbleDataSeries, $bubbleWeightSeries);
$myBubbleChart->drawBubbleChart($bubbleDataSeries, $bubbleWeightSeries, array("ForceAlpha" => true));
$myPicture->setFontProperties(array("FontName" => $font, "FontSize" => 11, "R" => 34, "G" => 34, "B" => 34));
$MyData->setSerieDrawable('size', true);
$MyData->setSerieDrawable('all', true);
$MyData->setSerieDrawable('minor', true);
$MyData->setSerieDrawable('anon', true);
$MyData->setSerieDrawable('protect', true);
$myPicture->drawLegend(900, 55, array("Style" => LEGEND_NOBORDER, "BoxWidth" => 10, "BoxHeight" => 10, "Mode" => LEGEND_VERTICAL));
ob_start();
imagepng($myPicture->Picture);
$imgdata = ob_get_contents();
ob_end_clean();
$rimg = "data:image/png;base64," . base64_encode($imgdata);
return $rimg;
}
示例15: pImage
$DataSet->addPoints(array(7.5, 8, 7.5, 10, 6, 6), "Pedro");
// Pedro
$DataSet->setAxisName(0, 'Horas');
// unidade
$DataSet->setAxisUnit(0, 'h');
// Labels
$DataSet->addPoints(array('Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'), 'Dias');
$DataSet->setSerieDescription('Dias', 'Dias da Semana');
$DataSet->setAbscissa('Dias');
// Inicializando o gráfico - Largura e Altura
$Graph = new pImage(700, 230, $DataSet);
// Fonte padrão para os textos
$Graph->setFontProperties(array('FontName' => "pChart/fonts/verdana.ttf", 'FontSize' => 8));
// Área utilizada para plotar o gráfico - x1, y1, x2, y2
$Graph->setGraphArea(50, 40, 670, 190);
// RGB, Subticks no eixo, Fundo cores alternadas
// ver: http://wiki.pchart.net/doc.doc.draw.scale.html
$scale = array('GridR' => 150, 'GridG' => 150, 'GridB' => 150, 'DrawSubTicks' => true, 'CycleBackground' => true);
$Graph->drawScale($scale);
$Graph->drawLineChart();
// Finaliza o gráfico
// colocando a legenda dos valores
$Graph->drawLegend(540, 25, array("Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL));
// Fonte do título
$Graph->setFontProperties(array('FontName' => "pChart/fonts/verdana.ttf", 'FontSize' => 10));
// título
$Graph->drawText(60, 20, "Horas Trabalhadas");
// Cria a imagem e salva em arquivo
//$Graph->autoOutput('/tmp/teste.png');
// Cria a imagem e devolve para o browser
$Graph->autoOutput();