Как я могу использовать функцию reduceSum crossfilter в leaflet.js дляКак использовать reduceSum DC в leaflet.js
В yurukov's dc.leaflet.js example он использует функцию reduceCount для формата TSV файла. Но я хочу использовать сумму данных с помощью reduceSum.
Вот мои данные в TSV:
type geo say
wind 38.45330,28.55529 10
wind 38.45330,28.55529 10
solar 39.45330,28.55529 10
Вот мой код:
<script type="text/javascript" src="../js/d3.js"></script>
<script type="text/javascript" src="../js/crossfilter.js"></script>
<script type="text/javascript" src="../js/dc.js"></script>
<script type="text/javascript" src="../js/leaflet.js"></script>
<script type="text/javascript" src="../js/leaflet.markercluster.js"></script>
<script type="text/javascript" src="../js/dc.leaflet.js"></script>
<script type="text/javascript">
/* Markers */
d3.csv("demo1.csv", function(data) {
drawMarkerSelect(data);
});
function drawMarkerSelect(data) {
var xf = crossfilter(data);
var facilities = xf.dimension(function(d) { return d.geo; });
var facilitiesGroup = facilities.group().reduceSum(function(d){return d.say});
dc.leafletMarkerChart("#demo1 .map")
.dimension(facilities)
.group(facilitiesGroup)
.width(1100)
.height(600)
.center([39,36])
.zoom(6)
.cluster(true);
var types = xf.dimension(function(d) { return d.type; });
var typesGroup = types.group().reduceSum(function(d){return d.say});
dc.pieChart("#demo1 .pie")
.dimension(types)
.group(typesGroup)
.width(200)
.height(200)
.renderLabel(true)
.renderTitle(true)
.ordering(function (p) {
return -p.value;
});
dc.renderAll();
}
</script>
Но это не работает. Как мы можем использовать reduceSum?
Благодаря
Gordon определил наиболее значительную проблему с вашими данными, разделяющими табуляцию, но 'd3.csv()' в вашем примере выше ищет значения, разделенные запятыми. Sidenote: Вы проверили, являются ли значения числами или строками? – kwah