2016-06-16 3 views
0

Мне нравится динамически устанавливать значение minPointLengh для высокой диаграммы. Но приведенный ниже код не работает. не могли бы вы помочь мне сделать это.Как динамически установить minPointLength, кроме 0

$(function() { 
    $('#container').highcharts({ 
     chart: { 
      type: 'column' 
     }, 
     xAxis: { 
      categories: ['Sep', 'Oct', 'Nov', 'Dec'] 
     }, 

     plotOptions: { 
     var minPointLength; 
       if(this.y > 0) 
        minPointLength = 3, 
      else 
        minPointLength = 0, 
      series: { 
         minPointLength: minPointLength, 
      } 
     }, 
     series: [{ 
      data: [4, 0, 1, 5] 
     }] 
    }); 
}); 
+1

Что такое 'this.y'? – epascarello

+1

minPointLength - это параметр уровня серии, но вы пытаетесь сказать ему, чтобы посмотреть на значение y точки. Есть много причин, почему это не будет работать так, как вы пытаетесь это сделать. Лучший вариант, который я нашел для достижения того, что вы хотите здесь, - изменить все ваши ** значения ** ** для значений ** null **. minPointLength не влияет на нулевые значения, но будет влиять на 0 значений. – jlbriggs

ответ

-1

Вы не можете использовать код внутри объекта.
Попробуйте сделать это:

var minPointLength; 

    if(this.y > 0) 
        minPointLength = 3, 
      else 
        minPointLength = 0, 
     }; 

    series: { 
       minPointLength : minPointLength 
     } 
+0

plotOptions: { var minPointLength; \t \t если (this.y> 0) minPointLength = 3, еще minPointLength = 0, серии: { \t \t //if(this.y> 0) \t \t minPointLength: minPointLength, // else \t // \t minPointLength: 0, } }, –

+0

не работает. вы можете мне помочь –

+0

Что не работает? Какое исключение? Пожалуйста, дополните. –

0

Это не представляется возможным. Атрибут minPointLength применяется ко всей серии и не может быть изменен для отдельных точек.

Если вы хотите правильно показать, когда значения положительны, а когда они равны 0, может оказаться полезным показать метки данных, чтобы эти столбцы были четко обозначены (см. Этот пример: https://jsfiddle.net/brightmatrix/1spxcsmd/).

Кроме того, все, что вы хотите сделать динамически в коде Highcharts, должно быть в функциях, вызываемых либо событиями, либо функцией formatter. Вы не можете вставлять переменные или код непосредственно в параметры диаграммы. Одна из причин, по которой ваш исходный код не работал, был вызван вашим кодом в plotOptions.

1

Мое предложение: изменить любые значения 0 значениями null.

minPointLength не повлияет ни на какие пункты с нулевыми значениями y.

код Обновление:

$(function() { 
    $('#container').highcharts({ 
     chart: { 
      type: 'column' 
     }, 
     xAxis: { 
      categories: ['Sep', 'Oct', 'Nov', 'Dec'] 
     }, 

     plotOptions: { 
      series: { 
       minPointLength: 3 
      } 
     }, 
     series: [{ 
      data: [4, null, 1, 5] 
     }] 
    }); 
}); 

Пример:

Дополнительная причина того, что ваш код не будет работать: вы пытаетесь установить minPointLength свойство непосредственно в объект plotOptions - он должен находиться внутри одного из селекторных объектов серии (то есть «» 0 ',' column: {} 'и т. Д.).