学习D3,我正在学习很多教程。到目前为止,我可以使用外部json文件为所有美国州创建美国地图。但是,我喜欢只用其中一个状态绘制地图(比如Alabama,这是json文件中的第一个特征)。
到目前为止的代码:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_app.settings")
application = get_wsgi_application()
.json的结构:
<script>
var w = 500;
var h = 300;
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height",h);
var projection = 3.geo.albersUsa().translate([w/2,h/2]).scale([500]);
var path = d3.geo.path().projection(projection);
d3.json("us-states.json", function(json){
svg.selectAll("path")
.data(json.features)
.enter()
.append("path")
.attr("d",path)
.style("fill", "teal");
});
</script>
最原始的方法是,手动创建一个只有Alabama的新json文件,但我相信有更好的方法。我想我想创建一个带有json对象的新变量,我希望随后在d3.json函数中使用它。类似的东西:
{"type":"FeatureCollection","features":[{"type":"Feature","id":"01","properties":{"name":"Alabama"},"geometry":
{"type":"Polygon","coordinates":[[[-87.359296,35.00118],[-85.606675,34.984749],[-85.431413,34.124869],[-85.184951,32.859696],...
但我不知道如何从主json文件中获取信息。
答案 0 :(得分:0)
您可以按索引选择状态并将所有内容放入数组中。像这样:
.data([topojson.feature(us, us.objects.states).features[1]])