| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 | 
							- <?php
 
- namespace PhpOffice\PhpSpreadsheet\Chart;
 
- use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
 
- class DataSeries
 
- {
 
-     const TYPE_BARCHART = 'barChart';
 
-     const TYPE_BARCHART_3D = 'bar3DChart';
 
-     const TYPE_LINECHART = 'lineChart';
 
-     const TYPE_LINECHART_3D = 'line3DChart';
 
-     const TYPE_AREACHART = 'areaChart';
 
-     const TYPE_AREACHART_3D = 'area3DChart';
 
-     const TYPE_PIECHART = 'pieChart';
 
-     const TYPE_PIECHART_3D = 'pie3DChart';
 
-     const TYPE_DOUGHNUTCHART = 'doughnutChart';
 
-     const TYPE_DONUTCHART = self::TYPE_DOUGHNUTCHART; // Synonym
 
-     const TYPE_SCATTERCHART = 'scatterChart';
 
-     const TYPE_SURFACECHART = 'surfaceChart';
 
-     const TYPE_SURFACECHART_3D = 'surface3DChart';
 
-     const TYPE_RADARCHART = 'radarChart';
 
-     const TYPE_BUBBLECHART = 'bubbleChart';
 
-     const TYPE_STOCKCHART = 'stockChart';
 
-     const TYPE_CANDLECHART = self::TYPE_STOCKCHART; // Synonym
 
-     const GROUPING_CLUSTERED = 'clustered';
 
-     const GROUPING_STACKED = 'stacked';
 
-     const GROUPING_PERCENT_STACKED = 'percentStacked';
 
-     const GROUPING_STANDARD = 'standard';
 
-     const DIRECTION_BAR = 'bar';
 
-     const DIRECTION_HORIZONTAL = self::DIRECTION_BAR;
 
-     const DIRECTION_COL = 'col';
 
-     const DIRECTION_COLUMN = self::DIRECTION_COL;
 
-     const DIRECTION_VERTICAL = self::DIRECTION_COL;
 
-     const STYLE_LINEMARKER = 'lineMarker';
 
-     const STYLE_SMOOTHMARKER = 'smoothMarker';
 
-     const STYLE_MARKER = 'marker';
 
-     const STYLE_FILLED = 'filled';
 
-     /**
 
-      * Series Plot Type.
 
-      *
 
-      * @var string
 
-      */
 
-     private $plotType;
 
-     /**
 
-      * Plot Grouping Type.
 
-      *
 
-      * @var string
 
-      */
 
-     private $plotGrouping;
 
-     /**
 
-      * Plot Direction.
 
-      *
 
-      * @var string
 
-      */
 
-     private $plotDirection;
 
-     /**
 
-      * Plot Style.
 
-      *
 
-      * @var null|string
 
-      */
 
-     private $plotStyle;
 
-     /**
 
-      * Order of plots in Series.
 
-      *
 
-      * @var array of integer
 
-      */
 
-     private $plotOrder = [];
 
-     /**
 
-      * Plot Label.
 
-      *
 
-      * @var array of DataSeriesValues
 
-      */
 
-     private $plotLabel = [];
 
-     /**
 
-      * Plot Category.
 
-      *
 
-      * @var array of DataSeriesValues
 
-      */
 
-     private $plotCategory = [];
 
-     /**
 
-      * Smooth Line.
 
-      *
 
-      * @var bool
 
-      */
 
-     private $smoothLine;
 
-     /**
 
-      * Plot Values.
 
-      *
 
-      * @var array of DataSeriesValues
 
-      */
 
-     private $plotValues = [];
 
-     /**
 
-      * Create a new DataSeries.
 
-      *
 
-      * @param null|mixed $plotType
 
-      * @param null|mixed $plotGrouping
 
-      * @param int[] $plotOrder
 
-      * @param DataSeriesValues[] $plotLabel
 
-      * @param DataSeriesValues[] $plotCategory
 
-      * @param DataSeriesValues[] $plotValues
 
-      * @param null|string $plotDirection
 
-      * @param bool $smoothLine
 
-      * @param null|string $plotStyle
 
-      */
 
-     public function __construct($plotType = null, $plotGrouping = null, array $plotOrder = [], array $plotLabel = [], array $plotCategory = [], array $plotValues = [], $plotDirection = null, $smoothLine = false, $plotStyle = null)
 
-     {
 
-         $this->plotType = $plotType;
 
-         $this->plotGrouping = $plotGrouping;
 
-         $this->plotOrder = $plotOrder;
 
-         $keys = array_keys($plotValues);
 
-         $this->plotValues = $plotValues;
 
-         if ((count($plotLabel) == 0) || ($plotLabel[$keys[0]] === null)) {
 
-             $plotLabel[$keys[0]] = new DataSeriesValues();
 
-         }
 
-         $this->plotLabel = $plotLabel;
 
-         if ((count($plotCategory) == 0) || ($plotCategory[$keys[0]] === null)) {
 
-             $plotCategory[$keys[0]] = new DataSeriesValues();
 
-         }
 
-         $this->plotCategory = $plotCategory;
 
-         $this->smoothLine = $smoothLine;
 
-         $this->plotStyle = $plotStyle;
 
-         if ($plotDirection === null) {
 
-             $plotDirection = self::DIRECTION_COL;
 
-         }
 
-         $this->plotDirection = $plotDirection;
 
-     }
 
-     /**
 
-      * Get Plot Type.
 
-      *
 
-      * @return string
 
-      */
 
-     public function getPlotType()
 
-     {
 
-         return $this->plotType;
 
-     }
 
-     /**
 
-      * Set Plot Type.
 
-      *
 
-      * @param string $plotType
 
-      *
 
-      * @return DataSeries
 
-      */
 
-     public function setPlotType($plotType)
 
-     {
 
-         $this->plotType = $plotType;
 
-         return $this;
 
-     }
 
-     /**
 
-      * Get Plot Grouping Type.
 
-      *
 
-      * @return string
 
-      */
 
-     public function getPlotGrouping()
 
-     {
 
-         return $this->plotGrouping;
 
-     }
 
-     /**
 
-      * Set Plot Grouping Type.
 
-      *
 
-      * @param string $groupingType
 
-      *
 
-      * @return DataSeries
 
-      */
 
-     public function setPlotGrouping($groupingType)
 
-     {
 
-         $this->plotGrouping = $groupingType;
 
-         return $this;
 
-     }
 
-     /**
 
-      * Get Plot Direction.
 
-      *
 
-      * @return string
 
-      */
 
-     public function getPlotDirection()
 
-     {
 
-         return $this->plotDirection;
 
-     }
 
-     /**
 
-      * Set Plot Direction.
 
-      *
 
-      * @param string $plotDirection
 
-      *
 
-      * @return DataSeries
 
-      */
 
-     public function setPlotDirection($plotDirection)
 
-     {
 
-         $this->plotDirection = $plotDirection;
 
-         return $this;
 
-     }
 
-     /**
 
-      * Get Plot Order.
 
-      *
 
-      * @return int[]
 
-      */
 
-     public function getPlotOrder()
 
-     {
 
-         return $this->plotOrder;
 
-     }
 
-     /**
 
-      * Get Plot Labels.
 
-      *
 
-      * @return array of DataSeriesValues
 
-      */
 
-     public function getPlotLabels()
 
-     {
 
-         return $this->plotLabel;
 
-     }
 
-     /**
 
-      * Get Plot Label by Index.
 
-      *
 
-      * @param mixed $index
 
-      *
 
-      * @return DataSeriesValues
 
-      */
 
-     public function getPlotLabelByIndex($index)
 
-     {
 
-         $keys = array_keys($this->plotLabel);
 
-         if (in_array($index, $keys)) {
 
-             return $this->plotLabel[$index];
 
-         } elseif (isset($keys[$index])) {
 
-             return $this->plotLabel[$keys[$index]];
 
-         }
 
-         return false;
 
-     }
 
-     /**
 
-      * Get Plot Categories.
 
-      *
 
-      * @return array of DataSeriesValues
 
-      */
 
-     public function getPlotCategories()
 
-     {
 
-         return $this->plotCategory;
 
-     }
 
-     /**
 
-      * Get Plot Category by Index.
 
-      *
 
-      * @param mixed $index
 
-      *
 
-      * @return DataSeriesValues
 
-      */
 
-     public function getPlotCategoryByIndex($index)
 
-     {
 
-         $keys = array_keys($this->plotCategory);
 
-         if (in_array($index, $keys)) {
 
-             return $this->plotCategory[$index];
 
-         } elseif (isset($keys[$index])) {
 
-             return $this->plotCategory[$keys[$index]];
 
-         }
 
-         return false;
 
-     }
 
-     /**
 
-      * Get Plot Style.
 
-      *
 
-      * @return null|string
 
-      */
 
-     public function getPlotStyle()
 
-     {
 
-         return $this->plotStyle;
 
-     }
 
-     /**
 
-      * Set Plot Style.
 
-      *
 
-      * @param null|string $plotStyle
 
-      *
 
-      * @return DataSeries
 
-      */
 
-     public function setPlotStyle($plotStyle)
 
-     {
 
-         $this->plotStyle = $plotStyle;
 
-         return $this;
 
-     }
 
-     /**
 
-      * Get Plot Values.
 
-      *
 
-      * @return array of DataSeriesValues
 
-      */
 
-     public function getPlotValues()
 
-     {
 
-         return $this->plotValues;
 
-     }
 
-     /**
 
-      * Get Plot Values by Index.
 
-      *
 
-      * @param mixed $index
 
-      *
 
-      * @return DataSeriesValues
 
-      */
 
-     public function getPlotValuesByIndex($index)
 
-     {
 
-         $keys = array_keys($this->plotValues);
 
-         if (in_array($index, $keys)) {
 
-             return $this->plotValues[$index];
 
-         } elseif (isset($keys[$index])) {
 
-             return $this->plotValues[$keys[$index]];
 
-         }
 
-         return false;
 
-     }
 
-     /**
 
-      * Get Number of Plot Series.
 
-      *
 
-      * @return int
 
-      */
 
-     public function getPlotSeriesCount()
 
-     {
 
-         return count($this->plotValues);
 
-     }
 
-     /**
 
-      * Get Smooth Line.
 
-      *
 
-      * @return bool
 
-      */
 
-     public function getSmoothLine()
 
-     {
 
-         return $this->smoothLine;
 
-     }
 
-     /**
 
-      * Set Smooth Line.
 
-      *
 
-      * @param bool $smoothLine
 
-      *
 
-      * @return DataSeries
 
-      */
 
-     public function setSmoothLine($smoothLine)
 
-     {
 
-         $this->smoothLine = $smoothLine;
 
-         return $this;
 
-     }
 
-     public function refresh(Worksheet $worksheet)
 
-     {
 
-         foreach ($this->plotValues as $plotValues) {
 
-             if ($plotValues !== null) {
 
-                 $plotValues->refresh($worksheet, true);
 
-             }
 
-         }
 
-         foreach ($this->plotLabel as $plotValues) {
 
-             if ($plotValues !== null) {
 
-                 $plotValues->refresh($worksheet, true);
 
-             }
 
-         }
 
-         foreach ($this->plotCategory as $plotValues) {
 
-             if ($plotValues !== null) {
 
-                 $plotValues->refresh($worksheet, false);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |