Используя D3, я хочу взять тип визуализации данных классической тепловой карты ...
![enter image description here](https://i.stack.imgur.com/qTdvI.png)
.. на разделенную версию нескольких Heatmap группирует данные чертежа из одного источника данных.
![enter image description here](https://i.stack.imgur.com/LVrK1.png)
Технически это должен быть один элемент тепловой карты, извлекающий свои данные из одного источника - разделение и, следовательно, кластеризация / группировка должна происходить посредством сортировки данных в файле * .csv (первая группа, вторая группа, третья группа ..) и файл D3 *. JS, обрабатывающий стилизацию.
При создании одной карты:
// Build X scales and axis:
const x = d3.scaleBand()
.range([0, width])
.domain(myGroups)
.padding(0.00);
svg.append('g')
.attr('transform', `translate(0,${height})`)
.call(d3.axisBottom(x));
// Build Y scales and axis:
const y = d3.scaleBand()
.range([height, 0])
.domain(myVars)
.padding(0.00);
svg.append('g')
.call(d3.axisLeft(y));
назначение цвета:
// Assign color scale
const myColor = d3.scaleLinear()
.range(['red', '#750606'])
.domain([1, 100]);
и выборка (выборка) данных:
// Read the data
d3.csv('https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/heatmap_data.csv', (data) => {
data.sort(function(a, b) {
return myVars.indexOf(b.variable) - myVars.indexOf(a.variable) || myGroups.indexOf(a.group) - myGroups.indexOf(b.group)
});
Работает как шарм: CodePen
Я изо всех сил пытаюсь расширить эту базовую c структуру для создания нескольких групп, как описано выше. Расширение цветовая схема, попытка построить несколько дополнительных осей X и Y, которые охватывают различные диапазоны, приводит к полному разрыву элемента D3 , что делает карту невозможной для отображения вообще.
Может кто-то указать мне в правильном направлении о том, как создать несколько групп тепловой карты, не нарушая тепловую карту?