【发布时间】:2017-08-02 16:51:38
【问题描述】:
我正在尝试在 ReactJS 中的 D3 中创建树形图,下面是我的代码,我收到此错误但不知道原因:
错误:属性宽度:预期长度,“NaN”。
const chart = d3.select(this.node)
const treeMap = d3.treemap()
.size(this.state.width, this.state.height)
d3.json("treemap.json", (error, data) => {
if (error) throw error;
console.log(data)
const root = d3.hierarchy(data)
.sum((d) => { return d.size })
treeMap(root);
console.log(root)
const cell = chart.selectAll("g")
.data(root.leaves())
.enter()
.append("g")
cell.append("rect")
.attr("id", (d) => { return d.data.id; })
.attr("width", (d) => { return d.x1 - d.x0; })
.attr("height", (d) => { return d.y1 - d.y0; })
任何帮助将不胜感激。谢谢!
编辑:我的 json 见下文
{
"Skill": "General", "children": [
{
"Skill": "Dev", "count": 24, "children": [
{ "Skill": "Java", "count": 13 },
{ "Skill": "Javascript", "count": 6 },
{ "Skill": "Analytics", "count": 5 }
]
},
{
"Skill": "Functional", "count": 11, "children": [
{ "Skill": "Business Analysis", "count": 7 },
{ "Skill": "PMO", "count": 1 },
{ "Skill": "Agile", "count": 3 }
]
}
]
}
【问题讨论】:
-
你把这段代码放在哪里?
-
您确定
x1和x0是数值并且它们存在于root.leaves()中的每个对象吗? -
@SimonBilsky-Rollins x0 是 0,x1 是 NaN,所以我猜那是错误的。我以为它们应该是自动设置的?我如何确保它们是正确的值?对不起,如果这是一个愚蠢的问题,我是一个字面上的初学者
-
可以看到你的json吗?
-
@AndrewReid 用 json 编辑了主帖
标签: javascript reactjs d3.js web