Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libs/sparkline/lib/Sparkline_Line.php')
-rw-r--r--libs/sparkline/lib/Sparkline_Line.php286
1 files changed, 0 insertions, 286 deletions
diff --git a/libs/sparkline/lib/Sparkline_Line.php b/libs/sparkline/lib/Sparkline_Line.php
deleted file mode 100644
index bcc79cc57e..0000000000
--- a/libs/sparkline/lib/Sparkline_Line.php
+++ /dev/null
@@ -1,286 +0,0 @@
-<?php
-/*
- * Sparkline PHP Graphing Library
- * Copyright 2004 James Byers <jbyers@gmail.com>
- * http://sparkline.org
- *
- * Dual-licensed under the BSD (LICENSE-BSD.txt) and GPL (LICENSE-GPL.txt)
- * licenses.
- *
- * $Id: Sparkline_Line.php,v 1.10 2008/03/11 19:12:49 jbyers Exp $
- *
- */
-
-require_once dirname(__FILE__).'/Sparkline.php';
-
-class Sparkline_Line extends Sparkline {
-
- var $dataSeries;
- var $dataSeriesStats;
- var $dataSeriesConverted;
- var $yMin;
- var $yMax;
- var $featurePoint;
-
- ////////////////////////////////////////////////////////////////////////////
- // constructor
- //
- function __construct($catch_errors = true) {
- parent::__construct($catch_errors);
-
- $this->dataSeries = array();
- $this->dataSeriesStats = array();
- $this->dataSeriesConverted = array();
- $this->colorBackground = 'backgroundColor';
- $this->featurePoint = array();
- } // function Sparkline
-
- ////////////////////////////////////////////////////////////////////////////
- // data setting
- //
- function SetData($x, $y, $series = 1) {
- if(!is_numeric($x)) {
- $x = trim($x);
- }
- if(!is_numeric($y)) {
- $y = trim($y);
- }
-
- $this->Debug("Sparkline_Line :: SetData($x, $y, $series)", DEBUG_SET);
-
- if (!is_numeric($x) ||
- !is_numeric($y)) {
- $this->Debug("Sparkline_Line :: SetData rejected values($x, $y) in series $series", DEBUG_WARNING);
- return false;
- } // if
-
- $this->dataSeries[$series][$x] = $y;
-
- if (!isset($this->dataSeriesStats[$series]['yMin']) ||
- $y < $this->dataSeriesStats[$series]['yMin']) {
- $this->dataSeriesStats[$series]['yMin'] = $y;
- }
-
- if (!isset($this->dataSeriesStats[$series]['xMin']) ||
- $x < $this->dataSeriesStats[$series]['xMin']) {
- $this->dataSeriesStats[$series]['xMin'] = $x;
- }
-
- if (!isset($this->dataSeriesStats[$series]['yMax']) ||
- $y > $this->dataSeriesStats[$series]['yMax']) {
- $this->dataSeriesStats[$series]['yMax'] = $y;
- }
-
- if (!isset($this->dataSeriesStats[$series]['xMax']) ||
- $x > $this->dataSeriesStats[$series]['xMax']) {
- $this->dataSeriesStats[$series]['xMax'] = $x;
- }
- } // function SetData
-
- function SetYMin($value) {
- $this->Debug("Sparkline_Line :: SetYMin($value)", DEBUG_SET);
- $this->yMin = $value;
- } // function SetYMin
-
- function SetYMax($value) {
- $this->Debug("Sparkline_Line :: SetYMax($value)", DEBUG_SET);
- $this->yMax = $value;
- } // function SetYMin
-
- function ConvertDataSeries($series, $xBound, $yBound) {
- $this->Debug("Sparkline_Line :: ConvertDataSeries($series, $xBound, $yBound)", DEBUG_CALLS);
-
- if (!isset($this->yMin)) {
- $this->yMin = $this->dataSeriesStats[$series]['yMin'];
- }
-
- if (!isset($this->xMin)) {
- $this->xMin = $this->dataSeriesStats[$series]['XMin'];
- }
-
- if (!isset($this->yMax)) {
- $this->yMax = $this->dataSeriesStats[$series]['yMax'];
- }
-
- if (!isset($this->xMax)) {
- $this->xMax = $this->dataSeriesStats[$series]['xMax'];
- }
-
- $this->yRange = $this->yMax + ($this->yMin * -1);
-
- for ($i = 0; $i < sizeof($this->dataSeries[$series]); $i++) {
- $y = round(($this->dataSeries[$series][$i] + ($this->yMin * -1)) * (($yBound-1) / $this->yRange));
- $x = round($i * $xBound / (sizeof($this->dataSeries[$series])));
- $this->dataSeriesConverted[$series][] = array($x, $y);
- $this->Debug("Sparkline :: ConvertDataSeries series $series value $i ($x, $y)", DEBUG_SET);
- }
- } // function ConvertDataSeries
-
- ////////////////////////////////////////////////////////////////////////////
- // features
- //
- function SetFeaturePoint($x, $y, $color, $diameter, $text = '', $position = TEXT_TOP, $font = FONT_1) {
- $this->Debug("Sparkline_Line :: SetFeaturePoint($x, $y, '$color', $diameter, '$text')", DEBUG_CALLS);
-
- $this->featurePoint[] = array('ptX' => $x,
- 'ptY' => $y,
- 'color' => $color,
- 'diameter' => $diameter,
- 'text' => $text,
- 'textpos' => $position,
- 'font' => $font);
- } // function SetFeaturePoint
-
- ////////////////////////////////////////////////////////////////////////////
- // low quality rendering
- //
- function Render($x, $y) {
- $this->Debug("Sparkline_Line :: Render($x, $y)", DEBUG_CALLS);
-
- if (!parent::Init($x, $y)) {
- return false;
- }
-
- // convert based on graphAreaPx bounds
- //
- $this->ConvertDataSeries(1, $this->GetGraphWidth(), $this->GetGraphHeight());
-
- // stats debugging
- //
- $this->Debug('Sparkline_Line :: Draw' .
- ' series: 1 min: ' . $this->dataSeriesStats[1]['yMin'] .
- ' max: ' . $this->dataSeriesStats[1]['yMax'] .
- ' offset: ' . ($this->dataSeriesStats[1]['yMin'] * -1) .
- ' height: ' . $this->GetGraphHeight() + 1 .
- ' yfactor: ' . ($this->GetGraphHeight() / ($this->dataSeriesStats[1]['yMax'] + ($this->dataSeriesStats[1]['yMin'] * -1))));
- $this->Debug('Sparkline_Line :: Draw' .
- ' drawing area:' .
- ' (' . $this->graphAreaPx[0][0] . ',' . $this->graphAreaPx[0][1] . '), ' .
- ' (' . $this->graphAreaPx[1][0] . ',' . $this->graphAreaPx[1][1] . ')');
-
- $this->DrawBackground();
-
- // draw graph
- //
- for ($i = 0; $i < sizeof($this->dataSeriesConverted[1]) - 1; $i++) {
- $this->DrawLine($this->dataSeriesConverted[1][$i][0] + $this->graphAreaPx[0][0],
- $this->dataSeriesConverted[1][$i][1] + $this->graphAreaPx[0][1],
- $this->dataSeriesConverted[1][$i+1][0] + $this->graphAreaPx[0][0],
- $this->dataSeriesConverted[1][$i+1][1] + $this->graphAreaPx[0][1],
- 'lineColor');
- }
-
- // draw features
- //
- while (list(, $v) = each($this->featurePoint)) {
- $pxY = round(($v['ptY'] + ($this->yMin * -1)) * ($this->GetGraphHeight() / $this->yRange));
- $pxX = round($v['ptX'] * $this->GetGraphWidth() / sizeof($this->dataSeries[1]));
-
- $this->DrawCircleFilled($pxX + $this->graphAreaPx[0][0],
- $pxY + $this->graphAreaPx[0][1],
- $v['diameter'],
- $v['color'],
- $this->imageHandle);
- $this->DrawTextRelative($v['text'],
- $pxX + $this->graphAreaPx[0][0],
- $pxY + $this->graphAreaPx[0][1],
- $v['color'],
- $v['textpos'],
- round($v['diameter'] / 2),
- $v['font'],
- $this->imageHandle);
- }
- } // function Render
-
- ////////////////////////////////////////////////////////////////////////////
- // high quality rendering
- //
- function RenderResampled($x, $y) {
- $this->Debug("Sparkline_Line :: RenderResampled($x, $y)", DEBUG_CALLS);
-
- if (!parent::Init($x, $y)) {
- return false;
- }
-
- // draw background on standard image in case of resample blit miss
- //
- $this->DrawBackground($this->imageHandle);
-
- // convert based on virtual canvas: x based on size of dataset, y scaled proportionately
- // if size of data set is small, default to 4X target canvas size
- //
- $xVC = max(sizeof($this->dataSeries[1]), 4 * $x);
- $yVC = floor($xVC * ($this->GetGraphHeight() / $this->GetGraphWidth()));
- $this->ConvertDataSeries(1, $xVC, $yVC);
-
- // stats debugging
- //
- $this->Debug('Sparkline_Line :: DrawResampled' .
- ' series: 1 min: ' . $this->dataSeriesStats[1]['yMin'] .
- ' max: ' . $this->dataSeriesStats[1]['yMax'] .
- ' offset: ' . ($this->dataSeriesStats[1]['yMin'] * -1) .
- ' height: ' . $this->GetGraphHeight() .
- ' yfactor: ' . ($this->GetGraphHeight() / ($this->dataSeriesStats[1]['yMax'] + ($this->dataSeriesStats[1]['yMin'] * -1))), DEBUG_STATS);
- $this->Debug('Sparkline_Line :: DrawResampled' .
- ' drawing area:' .
- ' (' . $this->graphAreaPx[0][0] . ',' . $this->graphAreaPx[0][1] . '), ' .
- ' (' . $this->graphAreaPx[1][0] . ',' . $this->graphAreaPx[1][1] . ')');
-
- // create virtual image
- // allocate colors
- // draw background, graph
- // resample and blit onto original graph
- //
- $imageVCHandle = $this->CreateImageHandle($xVC, $yVC);
-
- while (list($k, $v) = each($this->colorList)) {
- $this->SetColorHandle($k, $this->DrawColorAllocate($k, $imageVCHandle));
- }
- reset($this->colorList);
-
- $this->DrawBackground($imageVCHandle);
-
- for ($i = 0; $i < sizeof($this->dataSeriesConverted[1]) - 1; $i++) {
- $this->DrawLine($this->dataSeriesConverted[1][$i][0],
- $this->dataSeriesConverted[1][$i][1],
- $this->dataSeriesConverted[1][$i+1][0],
- $this->dataSeriesConverted[1][$i+1][1],
- 'lineColor',
- $this->GetLineSize(),
- $imageVCHandle);
- }
-
- $this->DrawImageCopyResampled($this->imageHandle,
- $imageVCHandle,
- $this->graphAreaPx[0][0], // dest x
- $this->GetImageHeight() - $this->graphAreaPx[1][1], // dest y
- 0, 0, // src x, y
- $this->GetGraphWidth(), // dest width
- $this->GetGraphHeight(), // dest height
- $xVC, // src width
- $yVC); // src height
-
- // draw features
- //
- while (list(, $v) = each($this->featurePoint)) {
- $pxY = round(($v['ptY'] + ($this->yMin * -1)) * ($this->GetGraphHeight() / $this->yRange));
- $pxX = round($v['ptX'] * $this->GetGraphWidth() / sizeof($this->dataSeries[1]));
-
- $this->DrawCircleFilled($pxX + $this->graphAreaPx[0][0],
- $pxY + $this->graphAreaPx[0][1],
- $v['diameter'],
- $v['color'],
- $this->imageHandle);
- $this->DrawTextRelative($v['text'],
- $pxX + $this->graphAreaPx[0][0],
- $pxY + $this->graphAreaPx[0][1],
- $v['color'],
- $v['textpos'],
- round($v['diameter'] / 2),
- $v['font'],
- $this->imageHandle);
- }
- } // function RenderResampled
-} // class Sparkline_Line
-
-?>