Массив цветов тепловой карты с апекс-диаграммой Vue, применяющийся только в строке или столбце

#vue.js #apexcharts

Вопрос:

Я пытаюсь создать тепловую карту, используя диаграммы vue-apex. Я хотел бы использовать 3 цвета, как цветовую диаграмму тепла, основанную на ее значениях…

красный для маленьких, желтый для средних, зеленый для больших

я пытался использовать эти опции:

 chartOptions: {
  chart: {
    type: "heatmap",
        },
  colors: ["#F8696B", "#FEE683", "#63BE7B"]
  // also tried with this setting, but only change colors from row to column
  plotOptions: {
    heatmap: {
      distributed: true,
    },
  },
}
 

но не сработало так, как ожидалось, как вы можете видеть ниже:
введите описание изображения здесь

ожидаемый результат будет таким: введите описание изображения здесь

Ответ №1:

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

Вам нужно будет указать цветовой диапазон внутри массива heatmap.colorScale.ranges для каждого из промежуточных оттенков комбинации зеленого, желтого и красного, которые вы хотели бы видеть на своей тепловой карте.

Пример объекта цветовой гаммы в массиве диапазонов:

 {
  from: -30,
  to: 5,
  color: '#00A100',
  name: 'low',
}
 

Если вы посмотрите на примеры на веб-сайте, вы увидите, что нет примера, когда несколько цветов смешиваются на промежуточных этапах в тепловой карте только в одной категории/серии. Там, где есть несколько цветов, они применяются отдельно к каждой серии, поэтому у вас есть разные оттенки одного и того же цвета по горизонтали, но по вертикали цвета просто чередуются с предоставленными цветами или цветами по умолчанию:

Для одной серии данных существует либо несколько оттенков только одного цвета, либо дискретный набор цветовых диапазонов.

Вы можете либо выписать большое количество цветовых диапазонов с конкретными оттенками, которые вы хотели бы видеть, либо, возможно, использовать указание одного цвета, как в этом примере на официальном сайте:

Вы, вероятно, захотите установить красный цвет, чтобы у вас были оттенки между белым и красным.