Я полностью новичок, и я строю карту с более чем 5000 муниципалитетами. В этом случае данные очень разбросаны, например, население находится в диапазоне от 10 000 до 11 500 000 человек. Поэтому в исследовании в Интернете я нашел пошаговое руководство для построения карты в JS D3. И я преуспею в этом. Но масштаб - моя проблема.D3 Javascript Map Scale Scattered Data
Шкала определяется в соответствии с приведенным ниже кодом, который принимает диапазон от min до max, разделенный на 15 равных линейных пределов. Проблема в том, что это занимает первый ряд от 0 до 766 000, что составляет более 95% муниципалитетов. Итак, у меня есть монохроматическая карта. Из-за рассеянных данных я считаю, что логарифмическая шкала будет более уместна, чтобы показать более реалистичную диффузию данных. Может кто-то помочь мне с этим?
var quantize = d3.scale.quantize()
.range(d3.range(15).map(function(i) { return 'q' + i + '-15'; }));
var formatNumber = d3.format(",");
var legendX = d3.scale.linear();
var legendXAxis = d3.svg.axis()
.scale(legendX)
.orient("bottom")
.tickSize(4)
.tickFormat(function(d) {
return formatNumber(d);
});
var legendSvg = d3.select('#legend').append('svg')
.attr('width', '100%')
.attr('height', '55');
var g = legendSvg.append('g')
.attr("class", "legend-key YlGnBu")
.attr("transform", "translate(" + 25 + "," + 25 + ")");
g.selectAll("rect")
.data(quantize.range().map(function(d) {
return quantize.invertExtent(d);
}))
.enter().append("rect");
var legendWidth = d3.select('#map').node().getBoundingClientRect().width - 50;
var legendDomain = quantize.range().map(function(d) {
var r = quantize.invertExtent(d);
return r[1];
legendDomain.unshift(quantize.domain()[0]);
Любая причина для тега R? – Gregor
Тот же вопрос для тега CSS. –