2016-07-15 3 views
0

다축 차트의 스태킹을 토글하려고하지만 한 번에 하나의 시리즈 만 전환 할 수 있습니다.Highcharts 다축 차트의 스태킹 켜기

누구든지 해결 방법을 알고 있습니까? http://fiddle.jshell.net/kz7wbykx/

var chart = new Highcharts.Chart({ 
 
    chart: { 
 
     renderTo:'container', 
 
     defaultSeriesType:'column', 
 
     borderWidth:1, 
 
     borderColor:'#ccc', 
 
     marginLeft:110, 
 
     marginRight:50, 
 
     backgroundColor:'#eee', 
 
     plotBackgroundColor:'#fff', 
 
    }, 
 
    title:{ 
 
     text:'Chart Title' 
 
    }, 
 
    legend:{ 
 
             
 
    }, 
 
    tooltip:{ 
 
    }, 
 
    plotOptions: { 
 
     series: { 
 
      stacking:'normal', 
 
      fillColor:'rgba(255,255,255,0)', 
 
     }, 
 
    }, 
 
    xAxis:{ 
 
     lineColor:'#999', 
 
     lineWidth:1, 
 
     tickColor:'#666', 
 
     tickLength:3, 
 
     title:{ 
 
      text:'X Axis Title' 
 
     } 
 
    }, 
 
    yAxis:{ 
 
     lineColor:'#999', 
 
     lineWidth:1, 
 
     tickColor:'#666', 
 
     tickWidth:1, 
 
     tickLength:3, 
 
     gridLineColor:'#ddd', 
 
     title:{ 
 
      text:'Y Axis Title', 
 
      rotation:0, 
 
      margin:50, 
 
     } 
 
    }, 
 
    series: [{ 
 
     stack: 1, 
 
     name:'Series 1 Name', 
 
     data: [5,8,7,4,6] 
 
    },{ 
 
    \t \t stack: 1, 
 
     name:'Series 2 Name', 
 
     data: [2,3,6,5,7] 
 
    },{ 
 
    \t \t stack: 1, 
 
     name:'Series 3 Name', 
 
     data: [1,4,6,8,9] 
 
    }] 
 
},function(chart){ 
 
    $('button').click(function(){ 
 
    \t \t chart.series[0].options.stack = +!chart.series[0].options.stack; 
 
     chart.series[1].options.stack = +!chart.series[1].options.stack; 
 
     //chart.series[2].options.stack = +!chart.series[2].options.stack; 
 
     chart.series[0].hide(); 
 
     chart.series[1].hide(); 
 
     chart.series[2].hide(); 
 
     chart.series[0].show(); 
 
     chart.series[1].show(); 
 
     chart.series[2].show(); 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://code.highcharts.com/highcharts.js"></script> 
 
<div id="container" style="height: 400px"></div> 
 
<button>toggle stacking</button>

+0

내가 생각 여기에이 방법에 대한 정보를 찾을 수 있습니다 가장 좋은 방법은 Series.update 메서드를 사용하는 것입니다. http://fiddle.jshell.net/kz7wbykx/1/ –

+0

정말이야! 고맙습니다! – Bryan

+0

내 솔루션이 도움이되었음을 읽어 주셔서 감사합니다. :) 답변으로 게시했습니다. –

답변

1

나는 당신이 시리즈의 스택을 변경하는 경우 Series.update() 메소드를 사용할 수 있다고 생각 : 여기에 jsfiddle에 대한 링크입니다. 당신이 당신의 차트 Series.update()를 사용하여 작업 할 수있는 방법의 예를 볼 수 있습니다 여기에 http://api.highcharts.com/highcharts#Series.update

$('button').click(function() { 
    chart.series[0].update({ 
     stack: chart.series[0].options.stack == '1' ? '0' : '1' 
    }, false); 
    chart.series[1].update({ 
     stack: chart.series[1].options.stack == '1' ? '2' : '1' 
    }, false); 
    chart.redraw(); 
    }) 

: http://fiddle.jshell.net/kz7wbykx/1/

감사를

+0

3 열에서는 작동하는 것처럼 보이지만 다른 열을 추가하면 두 열이 겹쳐지지 않습니다. http://fiddle.jshell.net/baberuth22/9w2md7t3/ – Bryan

+0

나는 그것을 이해했다. 스택 값은 부울 true/false가 아니라 스택 번호와 같습니다. http://fiddle.jshell.net/baberuth22/Lrq4e9j5/ – Bryan