- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经实现了一个 infographic / map使用 crossfilter和 d3.js .
我想要的是添加将不同的数据条目呈现为 map 上的兴趣点的功能:
例如,这里我们有墨西哥的城市和数据来指示龙舌兰酒的消费量。
例如,我想做的是欧洲不同城市的龙舌兰酒消费情况。
如何将此类信息叠加到 my map of Europe 上? .
问题是,很清楚如何使用 d3.js 来实现这一点,但是不清楚如何使用与 一起工作的 map 来实现这一点dc.js,即crossfilter。
我所有的代码都可以找到here .
这是与 map 本身关系最密切的部分:
//This is the data for the Map
d3.json("data/europe.json", function (error, eu) {
console.log('map', eu)
usChart
.width(590)
.height(500)
.projection(projection
.scale((1200 + 1) / 2 )
.translate([660 / 4, 3360 / 4])
.precision(.1))
.dimension(countries)
.group(countriesJobsdSum)
.filterHandler( function(dimension, filter) {
dimension.filter(
function(d) {return usChart.filter() != null ? d.indexOf(usChart.filter()) >= 0 : true;}); // perform filtering
return filter; // return the actual filter value
})
.colors(d3.scale.quantize().range(
["#8c857d", "#d982ab", "#d9525e", "#a63f52", "#8c6976", "#55b1b1", "#637e9e"])
)
.colorDomain([0, 200])
.colorCalculator(function (d) { return d ? usChart.colors()(d) : '#ccc'; })
.overlayGeoJson(eu.features, "countries", function (d) {
return d.properties.name;
//return d.properties.Country;
})
.transitionDuration(0)
.title(function (d) {
return "Country: " + d.key + "\nNumber of Jobs: " + numberFormat(d.value ? d.value : 0) ;
});
最佳答案
你可以使用
.on("renderlet", drawAdditionalStuffInMap)
要在 map 中绘制其他内容,函数如下所示:
function drawAdditionalStuffInMap(_chart, selection) {
var svg = _chart.svg();
svg.selectAll("g.additionalStuff").remove();
var group = svg.selectAll("g.additionalStuff");
if (group.empty()) {
group = svg.append("g").classed("additionalStuff", true);
}
//you need to implement calculateAdditionalDataPoints
var additionalData = calculateAdditionalDataPoints();
var additionalNodes = group.selectAll("circle").data(additionalData, function(x) { return x.id; });
_chart.dimension().top(Infinity).map(function(d) {
d.location = proj([d.long, d.lat]);
return d;
});
additionalNodes.enter()
.append("circle")
.attr("x", 0)
.attr("y", 0)
.attr("r", 100)
.attr("transform", function(d){ return "translate(" + d.location[0] + "," + d.location[1] + ")"; });
additionalNodes.exit().remove();
}
以上代码要求您使用 map 的投影作为 proj 函数,并且所有数据点都将经度和纬度存储为 long 和 lat。它在当前选定的数据点处绘制半径为 100 的圆。如果您不支持在 map 上缩放和平移,您可以为该函数之外的所有数据点计算一次 d.location。
关于javascript - 显示带有标签的城市/兴趣点的 geoChoroplethChart map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33039404/
我开始使用 dc.js 库来创建各种图表,当我尝试使用 dc.js 创建 Geo Choropleth map 时遇到了一个问题,并且无法添加缩放和移动 map 的功能. 我看到的所有示例都使用 d3
我已经实现了一个 infographic / map使用 crossfilter和 d3.js . 我想要的是添加将不同的数据条目呈现为 map 上的兴趣点的功能: 例如,这里我们有墨西哥的城市和数据
我正在尝试绘制一个 dc choropleth ,但不知何故没有显示图例。这是示例 fiddle : http://jsfiddle.net/susram/9VJHe/56/ usCh
我正在使用 crossfilter.js、d3.js 和 dc.js 制作一些仪表板,但当数据集的值为“0” 时,我遇到了一些问题在仪表板中有一个 dc.geoChoroplethChart(),我使
我是一名优秀的程序员,十分优秀!