【发布时间】:2020-06-27 17:13:24
【问题描述】:
我正在尝试使用 React 和 d3.js 创建一个圆环图。我一直在查看有关饼图和图表的文档https://github.com/d3/d3-shape/blob/v1.3.7/README.md#pie_startAngle。我正在努力弄清楚我在哪里犯了错误。我有一个对象数组,我正在使用
获取饼图值 const createPie = d3
.pie()
.value(function(d) {return d.cases})
但是当我尝试在弧生成器中使用该数据时,它只会生成四分之一圆的弧。以下代码用于生成四分之一圆弧
useEffect(
() => {
const data = createPie(pieData);
console.log('data',data)
let arcs = data.map( item => {
let createTry = d3.arc()
.innerRadius(300)
.outerRadius(400)
.startAngle(item.startAngle )
.endAngle(item.endAngle);
return createTry(item);
});
setArcs(arcs);
}, [pieData]
)
最后我尝试将生成的路径映射到 svg 上。我相信问题源于 d3.pie()
<div>
<svg height={400} width={400}>
{arcs && arcs.map( arc => {
return(
<path d={arc}/>
)
})}
</svg>
</div>
任何帮助或指向文档中可能帮助我理解我的错误的地方将不胜感激。谢谢。这也是我遇到的问题的一个工作示例https://codesandbox.io/s/react-d3js-example-f4ylk?file=/src/components/Chart.js
【问题讨论】:
标签: javascript reactjs d3.js