当前位置: 首页>>代码示例>>PHP>>正文


PHP ezcGraphRenderer::drawHorizontalStackedBar方法代码示例

本文整理汇总了PHP中ezcGraphRenderer::drawHorizontalStackedBar方法的典型用法代码示例。如果您正苦于以下问题:PHP ezcGraphRenderer::drawHorizontalStackedBar方法的具体用法?PHP ezcGraphRenderer::drawHorizontalStackedBar怎么用?PHP ezcGraphRenderer::drawHorizontalStackedBar使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ezcGraphRenderer的用法示例。


在下文中一共展示了ezcGraphRenderer::drawHorizontalStackedBar方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: renderData

 /**
  * Render the assigned data
  *
  * Will renderer all charts data in the remaining boundings after drawing 
  * all other chart elements. The data will be rendered depending on the 
  * settings in the dataset.
  * 
  * @param ezcGraphRenderer $renderer Renderer
  * @param ezcGraphBoundings $boundings Remaining boundings
  * @return void
  */
 protected function renderData(ezcGraphRenderer $renderer, ezcGraphBoundings $boundings, ezcGraphBoundings $innerBoundings)
 {
     // Use inner boundings for drawning chart data
     $boundings = $innerBoundings;
     $xAxisNullPosition = $this->elements['xAxis']->getCoordinate(false);
     // Initialize counters
     $nr = array();
     $count = array();
     foreach ($this->data as $data) {
         if (!isset($nr[$data->displayType->default])) {
             $nr[$data->displayType->default] = 0;
             $count[$data->displayType->default] = 0;
         }
         $nr[$data->displayType->default]++;
         $count[$data->displayType->default]++;
     }
     $checkedRegularSteps = false;
     // Display data
     foreach ($this->data as $datasetName => $data) {
         --$nr[$data->displayType->default];
         // Check which axis should be used
         $xAxis = $data->xAxis->default ? $data->xAxis->default : $this->elements['xAxis'];
         $yAxis = $data->yAxis->default ? $data->yAxis->default : $this->elements['yAxis'];
         // Determine fill color for dataset
         if ($this->options->fillLines !== false) {
             $fillColor = clone $data->color->default;
             $fillColor->alpha = (int) round((255 - $fillColor->alpha) * ($this->options->fillLines / 255));
         } else {
             $fillColor = null;
         }
         // Ensure regular steps on axis when used with bar charts and
         // precalculate some values use to render bar charts
         //
         // Called only once and only when bars should be rendered
         if ($checkedRegularSteps === false && $data->displayType->default === ezcGraph::BAR) {
             $height = $this->calculateStepWidth($yAxis, $xAxis, $boundings->height)->y;
         }
         // Draw lines for dataset
         $lastPoint = false;
         foreach ($data as $key => $value) {
             // Calculate point in chart
             $point = $xAxis->axisLabelRenderer->modifyChartDataPosition($yAxis->axisLabelRenderer->modifyChartDataPosition(new ezcGraphCoordinate($xAxis->getCoordinate($value), $yAxis->getCoordinate($key))));
             // Render depending on display type of dataset
             switch (true) {
                 case $data->displayType->default === ezcGraph::BAR && $this->options->stackBars:
                     // Check if a bar has already been stacked
                     if (!isset($stackedValue[(int) ($point->y * 10000)][(int) $value > 0])) {
                         $start = new ezcGraphCoordinate($xAxisNullPosition, $point->y);
                         $stackedValue[(int) ($point->y * 10000)][(int) $value > 0] = $value;
                     } else {
                         $start = $yAxis->axisLabelRenderer->modifyChartDataPosition($xAxis->axisLabelRenderer->modifyChartDataPosition(new ezcGraphCoordinate($xAxis->getCoordinate($stackedValue[(int) ($point->y * 10000)][(int) $value > 0]), $yAxis->getCoordinate($key))));
                         $point = $yAxis->axisLabelRenderer->modifyChartDataPosition($xAxis->axisLabelRenderer->modifyChartDataPosition(new ezcGraphCoordinate($xAxis->getCoordinate($stackedValue[(int) ($point->y * 10000)][(int) $value > 0] += $value), $yAxis->getCoordinate($key))));
                     }
                     // Force one symbol for each stacked bar
                     if (!isset($stackedSymbol[(int) ($point->y * 10000)])) {
                         $stackedSymbol[(int) ($point->y * 10000)] = $data->symbol[$key];
                     }
                     // Store stacked value for next iteration
                     $side = $point->x == 0 ? 1 : $point->x / abs($point->x);
                     $stacked[(int) ($point->y * 10000)][$side] = $point;
                     $renderer->drawHorizontalStackedBar($boundings, new ezcGraphContext($datasetName, $key, $data->url[$key]), $data->color->default, $start, $point, $height, $stackedSymbol[(int) ($point->y * 10000)], $xAxisNullPosition);
                     // Render highlight string if requested
                     if ($data->highlight[$key]) {
                         $renderer->drawDataHighlightText($boundings, new ezcGraphContext($datasetName, $key, $data->url[$key]), $point, $xAxisNullPosition, $nr[$data->displayType->default], $count[$data->displayType->default], $this->options->highlightFont, $data->highlightValue[$key] ? $data->highlightValue[$key] : $value, $this->options->highlightSize + $this->options->highlightFont->padding * 2, $this->options->highlightLines ? $data->color[$key] : null, $this->options->highlightXOffset ? $this->options->highlightXOffset : 0, $this->options->highlightYOffset ? $this->options->highlightYOffset : 0, $height, $data->displayType->default);
                     }
                     break;
                 case $data->displayType->default === ezcGraph::BAR:
                     $renderer->drawHorizontalBar($boundings, new ezcGraphContext($datasetName, $key, $data->url[$key]), $data->color[$key], $point, $height, $nr[$data->displayType->default], $count[$data->displayType->default], $data->symbol[$key], $xAxisNullPosition);
                     // Render highlight string if requested
                     if ($data->highlight[$key]) {
                         $renderer->drawDataHighlightText($boundings, new ezcGraphContext($datasetName, $key, $data->url[$key]), $point, $xAxisNullPosition, $nr[$data->displayType->default], $count[$data->displayType->default], $this->options->highlightFont, $data->highlightValue[$key] ? $data->highlightValue[$key] : $value, $this->options->highlightSize + $this->options->highlightFont->padding * 2, $this->options->highlightLines ? $data->color[$key] : null, $this->options->highlightXOffset ? $this->options->highlightXOffset : 0, $this->options->highlightYOffset ? $this->options->highlightYOffset : 0, $height, $data->displayType->default);
                     }
                     break;
                 default:
                     throw new ezcGraphInvalidDisplayTypeException($data->displayType->default);
                     break;
             }
             // Store last point, used to connect lines in line chart.
             $lastPoint = $point;
         }
     }
 }
开发者ID:madscientist159,项目名称:Graph,代码行数:93,代码来源:horizontal_bar.php


注:本文中的ezcGraphRenderer::drawHorizontalStackedBar方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。