$call_matiere = mysql_query("SELECT nom_complet FROM matieres WHERE matiere = '".$temp3[$i]."'"); $etiquettex[$i] = old_mysql_result($call_matiere, "0", "nom_complet"); */ $etiquettex[$i]=$temp3[$i]; $i++; } $graph = new Graph(600, 400); $graph->setAntiAliasing(TRUE); $blue = new Color(0, 0, 200); $red = new Color(200, 0, 0); $group = new PlotGroup(); $group->setPadding(40, 40,60,100); $group->setBackgroundColor( new Color(240, 240, 240) ); $k = 1; while ($k < $nb_data) { $plot = new BarPlot($datay1[$k], $k, $nb_data-1); $plot->barBorder->setColor(new Color(0, 0, 0, 30)); $plot->setBarPadding(0.1, 0.1); $plot->setBarSpace(0); $plot->barShadow->setSize(0); $plot->barShadow->setPosition(SHADOW_RIGHT_TOP); $plot->barShadow->setColor(new Color(180, 180, 180, 10));
/** * Формирование графика. * * Функция формирует, а затем записывает в файл ($File) изображение графика по * переданным пользователем данным($Lines). Данная функция может рисовать как одиночные, * так и многолинейные графики.Исходными данными является массив, элементы которого также * является массивами исходных данных для соответствующих графиков (данная структура * сохраняется и для одиночных графиков!). Цвет каждой линии передается в массиве * $Colors, ключи которого совпадают с ключами массива исходных данных. Цвет задается * шестнадцатиричным кодом цвета (например, 0x000000 для черного цвета). * * @param string <заголовок диаграммы> * @param string <полный путь с именем файла-результата> * @param array <исходные данные> * @param array <подписи к оси Ox> * @param array <цвета линий> */ function Artichow_Line($Name, $File, $Lines, $Labels, $Colors) { #----------------------------------------------------------------------------- $Graph = new Graph(1000, 300); $Graph->setDriver('gd'); $Graph->setAntiAliasing(TRUE); #----------------------------------------------------------------------------- $Graph->title->set($Name); $Graph->title->setFont(new Tuffy(15)); $Graph->title->move(0, -5); #----------------------------------------------------------------------------- if (Count($Lines) > 1) { #--------------------------------------------------------------------------- $Group = new PlotGroup(); $Group->setPadding(40, 40); $Group->setBackgroundColor(new Color(240, 240, 240)); } #----------------------------------------------------------------------------- $IsSetLabel = FALSE; #----------------------------------------------------------------------------- foreach ($Lines as $LineID => $Line) { #--------------------------------------------------------------------------- $Plot = new LinePlot($Line); $Color = Color_RGB_Explode($Colors[$LineID]); $Plot->setColor(new Color($Color['R'], $Color['G'], $Color['B'])); $Plot->setThickness(1); $Plot->setBackgroundGradient(new LinearGradient(new Color(240, 240, 240), new Color(255, 255, 255), 0)); $Plot->setFillGradient(new LinearGradient(new LightOrange(10), new VeryLightOrange(90), 90)); $Plot->setPadding(50, 50, 50, 50); #--------------------------------------------------------------------------- $Plot->mark->setType(Mark::CIRCLE); $Plot->mark->setSize(5); #--------------------------------------------------------------------------- $Plot->label->set($Line); $Plot->label->move(0, -15); $Plot->label->setBackgroundGradient(new LinearGradient(new Color(250, 250, 250, 10), new Color(255, 200, 200, 30), 0)); $Plot->label->border->setColor(new Color(20, 20, 20, 20)); $Plot->label->setPadding(2, 2, 2, 2); #--------------------------------------------------------------------------- if (Count($Lines) < 2) { #------------------------------------------------------------------------- $Plot->xAxis->setLabelText($Labels); $Plot->yAxis->setLabelPrecision(1); } else { #------------------------------------------------------------------------- if (!$IsSetLabel) { #----------------------------------------------------------------------- $Plot->setXAxis(Plot::BOTTOM); $IsSetLabel = TRUE; } } #--------------------------------------------------------------------------- if (Count($Lines) > 1) { $Group->add($Plot); } #--------------------------------------------------------------------------- if (Count($Lines) > 1) { #------------------------------------------------------------------------- $Graph->add($Group); #------------------------------------------------------------------------- $Group->axis->bottom->setTickStyle(0); $Group->axis->bottom->setLabelText($Labels); } else { $Graph->add($Plot); } } #----------------------------------------------------------------------------- $Graph->draw($File); #----------------------------------------------------------------------------- return TRUE; }
function color($a = NULL) { if ($a === NULL) { $a = 0; } return new Color(mt_rand(20, 180), mt_rand(20, 180), mt_rand(20, 180), $a); } function getPerCent($value) { return sprintf('%.1f', $value) . ' %'; } $graph = new Graph(450, 400); $graph->setTiming(TRUE); $graph->setAntiAliasing(TRUE); $group = new PlotGroup(); $group->setBackgroundColor(color(80)); $group->setXAxisZero(FALSE); $group->title->set("Some lines"); $group->title->setBackgroundColor(new Color(255, 255, 255, 25)); $group->title->border->show(); $group->title->setPadding(3, 3, 3, 3); $group->title->move(0, -15); $group->setPadding(45, NULL, 45, NULL); $group->axis->left->setLabelNumber(mt_rand(0, 10)); $group->axis->left->label->setCallbackFunction('getPerCent'); foreach (array('left', 'right') as $axis) { $group->axis->{$axis}->setTickStyle(TICK_OUT); } foreach (array('top', 'bottom') as $axis) { $group->axis->{$axis}->setTickStyle(TICK_OUT); }
<?php /* * This work is hereby released into the Public Domain. * To view a copy of the public domain dedication, * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. * */ require_once "../../LinePlot.class.php"; $graph = new Graph(300, 200); $graph->setAntiAliasing(TRUE); $group = new PlotGroup(); $group->setXAxisZero(FALSE); $group->grid->setType(LINE_DASHED); $group->setBackgroundColor(new Color(197, 180, 210, 80)); $group->setPadding(40, NULL, 20, NULL); $group->axis->left->setLabelNumber(8); $group->axis->left->setLabelPrecision(1); $group->axis->left->setTickStyle(TICK_OUT); $x = array(NULL); for ($i = 1; $i < 10; $i++) { $x[] = cos($i * M_PI / 8) - 1; } $plot = new LinePlot($x); $plot->setXAxis(PLOT_TOP); $plot->setColor(new Color(40, 40, 150, 10)); $plot->setFillColor(new Color(40, 40, 150, 90)); $plot->mark->setType(MARK_BOOK); $plot->mark->move(mt_rand(0, 10), mt_rand(0, 10)); $group->add($plot);
<?php require_once "../ScatterPlot.class.php"; $graph = new Graph(400, 400); $group = new PlotGroup(); $group->setBackgroundColor(new VeryLightGray()); $group->setPadding(30, 30, 30, 30); $group->setSpace(5, 5, 5, 5); $group->legend->setPosition(0.5, 0.62); $group->legend->setAlign(LEGEND_CENTER, LEGEND_MIDDLE); function getCircle($size) { $center = 0; $x = array(); $y = array(); for ($i = 0; $i <= 30; $i++) { $rad = $i / 30 * 2 * M_PI; $x[] = $center + cos($rad) * $size; $y[] = $center + sin($rad) * $size; } return array($x, $y); } list($x, $y) = getCircle(3); $plot = new ScatterPlot($y, $x); $plot->link(TRUE, new DarkBlue()); $plot->mark->setFill(new DarkPink()); $plot->mark->setType(MARK_CIRCLE, 6); $group->legend->add($plot, 'Circle #1', LEGEND_MARK); $group->add($plot); list($x, $y) = getCircle(5); $plot = new ScatterPlot($y, $x);
//$graph = new Graph(388, 200); $graph = new Graph(370, 200); // définition des couleur bleu et rouge $bleu = new Color(0, 0, 200); $rouge = new Color(200, 0, 0); $group = new PlotGroup; // padding du graphique $group->setPadding(40, 40); // décalement du 0 et de la fin // $group->setSpace(4, 4, 10, 0); // couleur de fond du graphique $group->setBackgroundColor( new Color(255, 255, 255) ); // $values_absences = array(12, 5, 20, 32, 15, 4, 12, 5, 20, 32, 15, 4); $values_absences = $_SESSION['axe_y_abs']; // $values_retards = array(1, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0); $values_retards = $_SESSION['axe_y_ret']; // $x = array('jan.', 'fev.', 'mar.', 'avr.', 'mai', 'jui.', 'juil.', 'aou.', 'sep.', 'oct.', 'nov.', 'dec.'); $x = $_SESSION['axe_x']; // les absences $plot = new LinePlot($values_absences); $plot->setColor($rouge); $plot->setYAxis(PLOT_LEFT); //Plot::LEFT // épaisseur du trait
$plot = new ScatterPlot(array_values($val_ytd), array_values($xkeys)); $plot->link(TRUE, make_color('ytd_color', '40FFFF')); $plot->mark->setSize(make_num('ytd_mark', 10)); $plot->mark->setFill(make_color('ytd_markcolor', 'F0F0F0')); $plot->setThickness(make_num('ytd_thick', 5)); $plot->setYAxis(PLOT_LEFT); $plot->setYMin($min); $plot->setYMax($max); $grp->add($plot); } $grp->axis->bottom->setLabelText(array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')); $grp->axis->left->label->setCallbackFunction('FmtAmount'); set_font($grp->axis->bottom->label, 'x_font'); set_font($grp->axis->left->label, 'y_font'); set_font($grp->axis->right->label, 'y_font'); $graph->border->hide(); $grp->setBackgroundColor(make_color('bg_color', 'FFFFFF')); $grp->grid->setBackgroundColor(make_color('bg_plot_color', 'FFFFFF')); $graph->add($grp); $graph->draw(); // # Transpose array ($foo['baz']['bar'] --> $foo['bar']['baz']) function a_t($array) { $r = array(); foreach ($array as $k1 => $ia) { foreach ($ia as $k2 => $v) { $r[$k2][$k1] = $v; } } return $r; }