d3.js如何为国家地图中的每个州创建一个单独的元素

d3.js How to create a separate element for each state in a country map?

本文关键字:创建 元素 单独 一个 js 国家 地图 d3      更新时间:2023-09-26

我想将风格应用于印度地图中的不同州:目前,根据某些数据,使用某种颜色的深色阴影。

首先,我认为我需要为每个状态创建一个单独的元素,然后将其填充颜色设置为我的数据函数。

我真的是个新手。所以这可能很容易回答。我想不通。

我试图复制Bostock的代码,为英国的每个国家创建一个单独的路径元素:

svg.selectAll(".subunit")
.data(topojson.feature(uk, uk.objects.subunits).features)
.enter().append("path")
.attr("class", function(d) { return "subunit " + d.id; })
.attr("d", path);

我有一个名为indiastates.geojson的geojson文件。状态似乎被标记为:"NAME_1":"Andaman and Nicobar"。

在我的代码中,.data行需要说明什么?我不断收到错误,说topojson(或者geojson,如果我将topjson更改为geojson)是未定义的。

我还想知道这是否在做几乎相同的事情?

var areas = group.append("path")
.attr("d", path)
.attr("class", "area")
.attr("stroke", "black")
.style("fill", "rgb(255, 102, 102)");

听起来你想做的是创建一个美国的"choropleth"地图。如果你有一个topojson状态文件,这是一个很好的起点,但它可能需要转换为CSV。不幸的是,我已经两年多没有创作合唱了,而且我是用D3js以外的东西创作的。幸运的是,这里有各种各样的教程。只需在谷歌中搜索"D3中各州的choropleth地图"(不带引号)