【发布时间】:2021-07-24 09:31:49
【问题描述】:
对 d3 来说太新了,这是我第一个使用该库的项目。目前,我在根据数据用不同颜色填充地图时遇到问题。我在网上找到了很多示例,但它们并不适合我。
我所拥有的是一个带有这种格式数据的 JSON 文件
"Aska": {
"opening_bal": 138000,
"total_funds": 1030574000,
"expenditure_wages": 796017000,
"expenditure_materials": 234236000,
"total_expenditure": 1030491000,
"unspent_bal": 78000,
"payment_due": 12780000
},
"Balasore": {
"opening_bal": 4660000,
"total_funds": 233869000,
"expenditure_wages": 203883000,
"expenditure_materials": 57571000,
"total_expenditure": 262518000,
"unspent_bal": 28658000,
"payment_due": 2118000
},
我可以使用 GeoJson 文件创建地图。这是地图的链接:https://mgnregs-d3.vercel.app/filter
我正在考虑使用初始类别“opening_bal”创建一个对象,例如:
{
"Aska": 138000,
"Balasore": 4660000
},
点击后,我会将类别更新为“total_funds”等,例如:
{
"Aska": 1030574000,
"Balasore": 233869000
},
但首先我需要可视化初始化第一个数据。我做不到。
这样的事情在某些项目上有效,但不适用于我的情况......
d3.json('data.json', function (d) {
budget.d.properties.pc_name = d.properties.pc_name['opening_bal']
})
var color = d3
.scaleThreshold()
.domain(d3.range(2, 18))
.range(d3.schemeBlues[6])
这里是 GitHub 上的 repo:https://github.com/PixeledCode/MGNREGS_D3
地图组件:https://github.com/PixeledCode/MGNREGS_D3/blob/main/src/components/Filter/Filter.js
data.json:https://github.com/PixeledCode/MGNREGS_D3/blob/main/src/assets/data.json
映射 GeoJson:https://github.com/PixeledCode/MGNREGS_D3/blob/main/src/assets/odihsa.js
感谢任何帮助。
【问题讨论】:
-
我不明白你的问题。您的问题是读取 json 文件或将值转换为颜色代码?
-
将值转换为颜色。就像我有一个具有不同 id 和各自值的对象一样,如何根据值用颜色填充地图。谢谢
-
好的,你有一个值范围(比如说 0 到 100)并且你想把这个范围内的每个值转换成一种颜色(假设从 green 到 blue)。对吗?
-
是的,像这样,{ "Aska": 138000, "Balasore": 4660000 },这些是我为 svg 元素的不同路径提供的 id。想要基于这些值的颜色。
标签: javascript json reactjs d3.js data-visualization