Используя D3, я хочу взять тип визуализации данных классической тепловой карты ...
.. на разделенную версию нескольких Heatmap группирует данные чертежа из одного источника данных.
Технически это должен быть один элемент тепловой карты, извлекающий свои данные из одного источника - разделение и, следовательно, кластеризация / группировка должна происходить посредством сортировки данных в файле * .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 , что делает карту невозможной для отображения вообще.
Может кто-то указать мне в правильном направлении о том, как создать несколько групп тепловой карты, не нарушая тепловую карту?