현재 내 웹 사이트에서 Highcharts를 사용 중입니다. 내 차트 (기본 세로 막 대형 차트) 중 하나에서 여러 시리즈를 볼 수 있으며, 아래쪽에 표시된 이름을 클릭하여 표시/숨길 수 있습니다.하이 차트 Plotoptions Series
나는 시리즈를 많이 가질 수 있으며 동시에 시리즈 수를 3 개로 제한하고 싶습니다. 그래프로드시 3 계열 만 표시되고 다른 그래프는 표시되지 않습니다. 네 번째 세리를 클릭하면 원래 존재하는 세 개 중 하나가 사라지므로 활성 세리에의 수는 항상 3이됩니다.
나는 그것을 찾고 있었고 몇 가지 수정을해야한다는 것을 알았습니다. plotOptions.series 필드와 Highcharts API 참조를 파고 들었지만 내가 원하는 것을 찾지 못했습니다. 코드에서 내 첫 번째 시도는 다음과 같이 될 것이다 :
$('#container').highcharts({
plotOptions:{
series: {
var series = this.series;
var nb_of_visible_series = 0;
//Here i count the number of visible series
for(var i=0; i<series.length; i++) {
if(series[i].visible) {
nb_of_visible_series++:
}
}
//If too many series are visible I'll randomly
//hide as many series as necessary
if(nb_of_visible_series>3) {
var nb_of_series_to_hide = nb_of_visible_series-3;
while(nb_of_series_to_hide>0) {
var i=Math.floor(Math.random()*series.length);
if(series[i].visible) {
series[i].hide()
nb_of_series_to_hide--;
}
}
}
}
}
}
그래서는 생각하지만 난 진짜 넣어 위치를 모른다 (그냥 추측이 같은 plotOptions.series
필드에 직접적으로?) . plotOptions.series.events.legentItemClick
에 넣을 수는 있지만 차트를로드 할 때 고려되지 않습니다.
내 코드에 대한 몇 가지 트랙과 조언을 찾고 있습니다 (저는 JS 초급입니다). 그리고 Advance에서 감사드립니다. 그리고 내 가난한 영어에 대해 미안해.
show() 및 hide() 메서드를 통해 동적으로 가시성을 제어 할 수 있으므로 legendItemClick 핸들러가 실행되지 않기 때문에 legendItemClick 대신 각 시리즈의 이벤트 표시를 처리하는 것이 훨씬 좋습니다. – omikron
질문은'hide()'와'show()'메소드를 사용하는 것에 대해서는 언급하지 않았습니다. 'hide()'와'show()'에 대한 지원을 자유롭게 추가 할 수 있습니다. –