Проверьте это jsFiddle тепловой карты, сделанной в D3.js.Инвертирование оси y на карте нагрева в D3.js
По умолчанию ось y идет сверху вниз. Я должен был преобразовать оси Y в линейные диаграммы до as described in this conversation.
Однако я не совсем уверен, как сделать требуемую инверсию здесь. Есть идеи?
Соответствующие части моего кода (где инверсии необходимо будет применяться) следующим образом:
var xGrid = d3.scale.linear()
.range([0, w - 2])
.domain([0, data.influencer_range.length]);
var yGrid = d3.scale.linear()
.range([0, h - 2])
.domain([0, data.omm_range.length]);
var xOrdinal = d3.scale.ordinal()
.domain(data.influencer_range)
.rangeBands([0, data.influencer_range.length]);
var yOrdinal = d3.scale.ordinal()
.domain(data.omm_range).
rangeBands([0, data.omm_range.length]);
var x = function(point) {
return point * xGrid(1);
};
var y = function(point) {
return point * yGrid(1);
}
Это, кажется, инвертировать ось х по какой-то причине. –
Из вашего кода: 'var row = xOrdinal (d [1]); var column = yOrdinal (d [0]); 'нечетно, строка bc, которая является y-ish, отображается на xOrdinal. Итак, вместо шага 2 в моем ответе, если вы измените диапазон «xOrdinal», я думаю, вы получаете то, что ожидаете: http://jsfiddle.net/qrBBS/3/. – meetamit