Это ошибка в JSFiddle и Codepen, или в Highcharts, или ограничение Javascript?

1

Я создаю тепловую карту с Highcharts. Я тестировал карту 5x5 и получаю ожидаемую тепловую карту.

Затем я тестировал более крупный, и получившаяся тепловая карта неверна. Я также пробовал это в CodePen, с тем же (неправильным) результатом.

Что-то странное также происходит где-то в большом массиве при использовании Codepen: (см. этот ответ для этой точки, что объясняет, почему подсветка останавливается)

Изображение 174551

У меня есть несколько возможностей:

  • это может быть проблема с браузером. Я тестировал с Chrome и Firefox и получал ту же ошибку
  • это может быть ограничение JavaScript на размер массива (выделение кода происходит в кодеде, поэтому, может быть) , Похоже, что нет.
  • это может быть ошибкой в JSFiddle и Codepen. Я сомневаюсь, что проблема одинакова в обеих песочницах.
  • это может быть ошибка с Highcharts. Этого я не знаю - мой код не является экзотическим (хотя и каким-то большим), поэтому его нужно было поймать раньше. Но этот выглядит как наиболее вероятный.

This is a fake snippet as the question requires one but it is not useful in this case
Теги:
highcharts
codepen
jsfiddle

3 ответа

1

Это не ошибка. Просто количество точек превышает значение по умолчанию для свойства turboThreshold (см. Раздел "Ссылка на API"). Увеличьте количество turboThreshold и turboThreshold будет отображаться правильно.

Справочник по API:
http://api.highcharts.com/highcharts/plotOptions.series.turboThreshold

Пример:
http://jsfiddle.net/p4z094g9/

1

CodeMirror (который является редактором codepen) поддерживает maxHighlightLength, который сообщает редактору максимальную длину символов, которые должен выделить редактор.

Значение по default для этой переменной равно 10000, и в вашем конкретном случае длина линии больше этого значения.

  • 0
    Да, это тоже было мое предположение, но если я разбью этот массив на несколько меньших строк, он будет выделен правильно, но тепловая карта останется пустой. То же самое на jsfiddle.
  • 0
    Спасибо - я отмечу моменты, связанные с выделением, но проблема все еще остается.
1

Проблема здесь в том, что вам нужно рассказать старшие диаграммы о масштабах yAxis. Для этого установите его в min = 0 и max = количество категорий - 1:

...
  yAxis: {
    categories: ['10.233.86.12', '10.233.84.72', '10.2.0.71', '10.90.13.175', '10.233.84.57', '10.91.66.24', '255.255.255.255', '224.0.0.252', '10.233.86.34', '10.233.80.60', '10.112.0.142', '10.35.24.33', '10.130.37.22', '10.20.3.16', '10.233.84.83', '10.70.1.79', '10.6.41.78', '10.89.3.109', '10.118.68.133', '192.168.0.11', '10.70.0.253', '10.10.68.56'],
    title: null,
    min: 0,
    max: 21
  },
...

Обратите внимание, что вы также должны сообщить ему, чтобы показать каждую категорию, которая должна быть сделана путем увеличения высоты диаграммы, чтобы метки не перекрывались.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню