Issues (459)

src/plot/ErrorPlot.php (1 issue)

1
<?php
2
3
/**
4
 * JPGraph v4.0.3
5
 */
6
7
namespace Amenadiel\JpGraph\Plot;
8
9
use Amenadiel\JpGraph\Util;
10
11
/**
12
 * File:        JPGRAPH_ERROR.PHP
13
 * // Description: Error plot extension for JpGraph
14
 * // Created:     2001-01-08
15
 * // Ver:         $Id: jpgraph_error.php 1106 2009-02-22 20:16:35Z ljp $
16
 * //
17
 * // Copyright (c) Asial Corporation. All rights reserved.
18
 */
19
20
/**
21
 * @class ErrorPlot
22
 * // Description: Error plot with min/max value for
23
 * // each datapoint
24
 */
25
class ErrorPlot extends Plot
26
{
27
    private $errwidth = 2;
28
29
    /**
30
     * CONSTRUCTOR.
31
     *
32
     * @param mixed $datay
33
     * @param mixed $datax
34
     */
35 2
    public function __construct($datay, $datax = false)
36
    {
37 2
        parent::__construct($datay, $datax);
38 2
        $this->numpoints /= 2;
39 2
    }
40
41
    /**
42
     * PUBLIC METHODS.
43
     *
44
     * @param mixed $graph
45
     */
46
    // Gets called before any axis are stroked
47 2
    public function PreStrokeAdjust($graph)
48
    {
49 2
        if ($this->center) {
50 1
            $a = 0.5;
51 1
            $b = 0.5;
52 1
            ++$this->numpoints;
53
        } else {
54 2
            $a = 0;
55 2
            $b = 0;
56
        }
57 2
        $graph->xaxis->scale->ticks->SetXLabelOffset($a);
58 2
        $graph->SetTextScaleOff($b);
59
        //$graph->xaxis->scale->ticks->SupressMinorTickMarks();
60 2
    }
61
62
    // Method description
63 2
    public function Stroke($img, $xscale, $yscale)
64
    {
65 2
        $numpoints = safe_count($this->coords[0]) / 2;
66 2
        $img->SetColor($this->color);
67 2
        $img->SetLineWeight($this->weight);
68
69 2
        if (isset($this->coords[1])) {
70 1
            if (safe_count($this->coords[1]) != $numpoints) {
71
                Util\JpGraphError::RaiseL(2003, safe_count($this->coords[1]), $numpoints);
72
            }
73
74
            //("Number of X and Y points are not equal. Number of X-points:". safe_count($this->coords[1])." Number of Y-points:$numpoints");
75
            else {
76 1
                $exist_x = true;
77
            }
78
        } else {
79 1
            $exist_x = false;
80
        }
81
82 2
        for ($i = 0; $i < $numpoints; ++$i) {
83 2
            if ($exist_x) {
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $exist_x does not seem to be defined for all execution paths leading up to this point.
Loading history...
84 1
                $x = $this->coords[1][$i];
85
            } else {
86 1
                $x = $i;
87
            }
88
89 2
            if (!is_numeric($x) ||
90 2
                !is_numeric($this->coords[0][$i * 2]) || !is_numeric($this->coords[0][$i * 2 + 1])) {
91
                continue;
92
            }
93
94 2
            $xt  = $xscale->Translate($x);
95 2
            $yt1 = $yscale->Translate($this->coords[0][$i * 2]);
96 2
            $yt2 = $yscale->Translate($this->coords[0][$i * 2 + 1]);
97 2
            $img->Line($xt, $yt1, $xt, $yt2);
98 2
            $img->Line($xt - $this->errwidth, $yt1, $xt + $this->errwidth, $yt1);
99 2
            $img->Line($xt - $this->errwidth, $yt2, $xt + $this->errwidth, $yt2);
100
        }
101
102 2
        return true;
103
    }
104
} // @class
105