2012-11-13 4 views
1

연도별로 계열 데이터를 표시하는 차트가 있습니다. 예 : 1011, 1112, 1213, 1415 및 각 연도의 실제 및 목표를 보여줍니다. 사용자가 열을 클릭하면일련 번호의 하이 차트 드릴 다운

, 아래로 그 데이터 세트로 차트 드릴, 그러나 나는 ... 오히려 하나의 열보다, 서로 옆에 실제 및 대상을 보여줄 수 있도록하고 싶습니다

JSFiddle : http://jsfiddle.net/MuydK/

어떤 도움을 주셔서 감사 드리며, 여러 가지 방법을 시도해 보았습니다. 데이터 세트보다는 데이터 세트를 설정하는 방법을 이해하지만 SetChart 등에 어떤 변경이 필요한지 알지 못한다고 생각합니다 ...

또한 시리즈 타이틀이 사라집니다. 한 번 뚫고 나오고, 어떤 아이디어라도 ...?

많은 도움을 주셔서 감사합니다.

나는 간단한 데이터와 코드를 업데이트
 var chart; 
    $(document).ready(function() { 
     var colors = Highcharts.getOptions().colors, 
     categories1 = ['1011', '1112', '1213', '1415'], 
     name1 = 'Actual', 

     data1 = [ ... 
+0

그러나 나는 서로 옆에 실제 및 대상을 보여줄 수 있도록하고 싶습니다 : 여기

JSFiddle

코드인가? 실제와 목표로 무엇을 의미합니까? –

+0

jsfiddle 링크가 보이면 4 세트의 실제/타겟 (단순히 합계가 있음)을 포함하는 막 대형 차트가 표시됩니다. 세트는 4 년 동안 1011, 1112, 1213 및 1415입니다. 열을 클릭하면 1011 실제 나는 실제 열을 보여주는 열의 데이터 세트를 보았습니다. 실제 드릴과 대상 세트를 모두 보여 드릴 수 있기를 원합니다. – CityCollegeSouthampton

답변

4

, 나는이 그냥 당신에 따라 코드를 업데이트 할 수있는 데모입니다, 이것은 당신이 원하는 생각합니다.

$(function() { 
     var chart; 
     $(document).ready(function() { 
      var colors = Highcharts.getOptions().colors, 
      categories1 = ['1011', '1112', '1213', '1415'], 
      name1 = 'Actual', 

      data1 = [ 
{ 
    y: 1674, 
    color: colors[0], 
    drilldown: { 
     name: '1011 Actual', 
     categories: ['BS', 'B', 'IT', 'C'], 
     data: [3, 32, 54, 50], 

     color: colors[0], 

     name1: '1011 Target', 
     data1: [0, 31, 50, 60], 
     color1:colors[1] 
    } 
} 
];   var colors = Highcharts.getOptions().colors, 
      categories2 = ['1011', '1112', '1213', '1415'], 
      name2 = 'Target', 

      data2 = [ 
{ 
    y: 1633, 
    color: colors[1], 
    drilldown: { 
      name: '1011 Actual', 
     categories: ['BS', 'B', 'IT', 'C'], 
     data: [3, 32, 54, 50], 

     color: colors[0], 

     name1: '1011 Target', 
     data1: [0, 31, 50, 60], 
     color1:colors[1] 
    } 
} 
];   function setChart(name, categories, data, color) { 
       console.log(name, categories, data, color); 
       chart.xAxis[0].setCategories(categories); 
       while (chart.series.length > 0) { 
        chart.series[0].remove(true); 
       } 
       for (var i = 0; i < data.length; i++) { 
        chart.addSeries({ 
         name: name[i], 
         data: data[i], 
         color: color[i] 
        }); 

       } 
      } 
      chart = new Highcharts.Chart({ 
       chart: { 
        renderTo: 'con1', 
        type: 'column' 
       }, 
       title: { 
        text: 'Learner Responsive 16-18' 
       }, 
       subtitle: { 
        text: 'Click the columns to view breakdown by department. Click again to view by Academic Year.' 
       }, 
       xAxis: { 
        categories: categories1 
        , labels: {rotation:-90, align:'right'} 
       }, 
       yAxis: { 
        title: { 
         text: 'Learner Responsive 16-18' 
        } 
       }, 

       plotOptions: { 
        column: { 
         cursor: 'pointer', 
         point: { 
          events: { 
           click: function() { 
            var drilldown = this.drilldown; 
            if (drilldown) { // drill down 
             setChart([drilldown.name,drilldown.name1], drilldown.categories, [drilldown.data, drilldown.data1], [drilldown.color,drilldown.color1]); 
            } else { // restore 
             setChart(name, categories1, [data1, data2], 'white'); 
            } 
           } 
          } 
         }, 

         dataLabels: { 
          enabled: true, 
          color: colors[0], 
          style: { 
           fontWeight: 'bold' 
          }, 
          formatter: function() { 
           return this.y; // +'%'; 
          } 
         } 
        } 
       }, 

       tooltip: { 
        formatter: function() { 
         var point = this.point, 
         series = point.series, 
         s = 'Learner Responsive 16-18' + '<br/>' + this.x + ' ' + series.name + ' is <b>' + this.y + '</b><br/>'; 
         if (point.drilldown) { 
          s += 'Click to view <b>' + point.category + ' ' + series.name + ' </b>' + ' by department'; 
         } else { 
          s += 'Click to return to view by academic year.'; 
         } 
         return s; 
        } 
       }, 

       series: [{ 
        name: name1, 
        data: data1, 
        color: colors[0] 
       },{ 
        name: name2, 
        data: data2, 
        color: colors[1] 
       }], 

       exporting: { 
        enabled: false 
       } 
      }, 
       function (chart) { 
       console.log(chart); 
      }); 
     }); 
    }); 
+1

당신은 스타이고, 제가 선택한 크리스마스 카드 목록에 올라와 있습니다. – CityCollegeSouthampton

+0

안녕하세요, 하이 차트에 도움이 필요합니다. 아약스를 통해 데이터를 가져 오는 드릴 다운 차트가 있습니다. 나는 x 축을 포맷팅하는 데 어려움을 겪고있다. 주 열에는 9Nov, 10Nov, 11Nov라는 레이블이 있어야하고 드릴 다운 레이블에는 00.00, 00.30, 1.00,1.30이 있어야합니다. 드릴 다운 부분을 처리하는 데 어려움을 겪고 있습니다. 나는 첫 번째 부분을 할 수있다. 나는 다음과 같이 포맷 : x 축 : [{ 유형 : '날짜', \t \t dateTimeLabelFormats : { \t \t \t \t \t \t개월 : '% 전자.%의 B ', \t \t \t \t \t \t년'%의 B ', \t \t \t \t \t \t시간'%의 H %의 M ' \t \t \t \t \t } }] – Kunbi

+0

부분 그 시리즈 : [{ 이름 : 'Day Values', colorByPoint : false, \t \t \t pointStar t : useDate, pointInterval 24 * 3600 * 1000 \t \t \t}] 드릴 { \t \t \t \t 시리즈 : drilldownSeries, } – Kunbi