2016-09-01 2 views
0

그래서 Yii에서는이 highcharts 확장자를 사용합니다. 그리고 데이터베이스 (내 컨트롤러에서)를 사용하여 데이터를 가져옵니다. 그리고보기는 다음과 같습니다 Yii 하이 차트 확장 - 값을 기준으로 색상을 변경하십시오.

<div class="hero-unit" id="content" style="position:relative;border: solid green"> 
<div style="max-width:100%;overflow:auto;"> 
    <div style="width:2200px;"> 
     <center> 
      <?php 
      $label = array(); //inisiasi label axis 
      $nilai = array(); //inisiasi nilai data 
      foreach ($dataProvider3->getData() as $i => $ii) { 
       $label[$i] = array($ii['no'] . '. ' . $ii['namapek']);//this is fetched from SQL syntax in controller 
       $nilai[$i] = (float) $ii['pek']; //this is fetched from SQL syntax in controller 
      } 
      $this->widget('application.extensions.highcharts.HighchartsWidget', array(
       'scripts' => array(
        'modules/exporting', 
        'themes/epcGray', 
        'highcharts-more', 
       ), 
       'options' => array(
        'chart' => array('defaultSeriesType' => 'column', 'backgroundColor' => 'rgba(255, 255, 255, 0.1)'), 
        'title' => FALSE, 
        'legend' => array(
         'enabled' => false, 
        ), 
        'xAxis' => array(
         'categories' => $label, 
        ), //nama axis 
        'yAxis' => array(
         'min' => 0, 
         'title' => array(
          'text' => 'Percentage' 
         ), 
        ), 
        'series' => array(
         array('data' => $nilai)//data, 
        ), 
        'tooltip' => array(
         'formatter' => 'js:function() {return "<b>Step "+ this.x +"</b><br/>" + "Finished: "+ Highcharts.numberFormat(this.y, 2) +"%"; }', 
        ), 
        'plotOptions' => array(
         'column' => array(
          'zones' => 
          array('value' => 50, 'color' => '#EB4011'), 
          array('value' => 120, 'color' => '#aaff99'), 
         ), 
         'series' => array(
          'point' => array(
           'events' => array(
            'click' => 'js:function() { 
           var cat = this.category; 
           var res = parseInt(cat, 10); 
           window.open ("index.php?r=reports/rinci&id=" + res); }', 
           ) 
          ), 
         ) 
        ), 
        'credits' => array('enabled' => false), 
       ) 
      )); 
      ?> 
     </center> 
    </div> 
</div> 

나는 값에 따라 바 색상 변경에 대한이 답변 here을 발견했다. 하지만 그것은 json 형식이고 Yii 위젯 형식을 사용해야합니다. 나는 그것을하는 것이 쉽다라고 생각했다. 그러나 그것은 일하는 것처럼 보이지 않는다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

나는이를 넣어 시도 : 나는 그들이 원하는대로 zones => 꼬추 위

'colorByPoint' => true, 

, 색상이 값으로 포인트 변경할 수 있지만. 나는 또한 series 배열 아래에 넣어,하지만 그것도 작동하지 않습니다.

답변

0

그래서 나는 그것을 만들기 위해 많은 노력을했습니다. 그러나 확장 자체의 결함 인 것으로 보입니다.

그래서 직접 하이 차트 js 파일을 사용합니다. 그건 잘 작동합니다. 누구나 같은 문제에 직면 해 있습니다. 유용한 기능이 너무 많지 않으면 확장 프로그램을 나가는 것이 좋습니다.

이 필요한 JS 파일입니다

<script src="https://code.highcharts.com/highcharts.js"></script> 
<script src="https://code.highcharts.com/modules/data.js"></script> 
<script src="https://code.highcharts.com/modules/drilldown.js"></script> 

사용 예 here.

관련 문제