Highcharts тепловая карта логарифмическая ColorAxis не удается, когда 0

1

Я пытаюсь реализовать тепловую карту в высоких диаграммах с логарифмическим цветом, но я продолжаю получать ошибки с высоким качеством # 10 (не может отображать нулевые или отрицательные значения на логарифмической оси).

Поскольку я пытаюсь применить логарифмическое свойство к оси цвета, а не к самой фактической оси, я полагаю, что моя проблема вызвана некоторыми моими ящиками, имеющими частоту нуля (цвета тепловой карты по частоте в каждом ящике).

Как я могу обойти это? Могу ли я создать функцию по умолчанию, так что, когда частота равна нулю, она присваивает этому бину цвет по умолчанию? Я не могу найти решения в документах.

В настоящее время мой объект colorAxis выглядит так

colorAxis: {
  type: 'logarithmic',
  minColor: '#EEEEFF',
  maxColor: '#000022',
  stops: [
    [0, '#EFEFFF'],
    [0.67, '#4444FF'],
    [1, '#000022']
  ]
}
Теги:
highcharts

2 ответа

0
Лучший ответ

Мое решение состояло в том, чтобы перебирать мои данные и изменять все нули до крайне малого числа, а затем установить свойство min на colorAxis чтобы чрезвычайно маленькие числа не мешали цветовой схеме. Это, очевидно, не лучшее решение, потому что, если третье измерение измеряет что-то другое, кроме частоты, и эта другая вещь может быть меньше 1, тогда чрезвычайно маленькое значение может накладываться на фактические данные и отбрасывать цветовую схему. Надеюсь, кто-то приходит и обеспечивает лучшее решение, но пока это все, что я должен дать.

0

Логарифм не имеет значения в 0, поэтому ваше решение кажется довольно опрятным. Вам нужно применить некоторое смещение к значениям, равным 0 - нет другого пути.

Если вы хотите быть более последовательным, вы можете применить смещение ко всем значениям. Затем примените formatters (подсказки, метки данных, метки цветовой оси), чтобы пользователь увидел значение без смещения.

Демо-версия: http://jsfiddle.net/kkulig/jdf5wrdL/

Ещё вопросы

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