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 $this */ 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 $this */ 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 $this */ 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 $this */ 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 $this */ public function setSmoothLine($smoothLine) { $this->smoothLine = $smoothLine; return $this; } public function refresh(Worksheet $worksheet): void { 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); } } } }