javascript - 使用 D3 在饼图中添加数据
问题描述
我有一个使用 d3 的应用程序。
import React, { useState } from "react";
import ReactDOM from "react-dom";
import * as d3 from "d3";
import Pie from "./PieGraph";
import "./styles.css";
function App() {
const [data, setData] = useState([
{
value: 25
},
{
value: 59
},
{
value: 77
}
]);
return (
<div className="App">
<h1>Pie Chart with React & D3</h1>
<div></div>
<div className="piechart">
<Pie
data={data}
width={200}
height={200}
innerRadius={60}
outerRadius={100}
/>
</div>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
我想在数字附近的图表中添加其他数据,例如:
- 25 个苹果
- 59 樱桃
- 77 辆汽车
我现在拥有的代码在这里
问题:如何在图表内添加附近的数字,我上面描述的文字?
解决方案
假设你可以改变PieGraph.js
自己,我会做以下事情:
- 更改
Arc
为接受带有 avalue
和 a 的数据label
piegraph.js
const Arc = ({ data, index, createArc, colors, format }) => (
<g key={index} className="arc">
<path className="arc" d={createArc(data)} fill={colors(index)} />
<text
transform={`translate(${createArc.centroid(data)})`}
textAnchor="middle"
fill="white"
fontSize="10"
>
// Here is the change
{data.format !== undefined ? data.format : format(data.value)}
</text>
</g>
);
- 更改您传递给
Pie
index.js
const [data, setData] = useState([
{
value: 25,
label: '25 apples',
},
{
value: 59,
label: '',
},
{
value: 77
}
]);
现在,第一个有标签 '25 apples',第二个没有标签,第三个有 label 77.00
,情况已经如此。
推荐阅读
- python - 熊猫数据框中的Python总和检查
- matlab - 分类 x 轴和元胞数组数据的 Matlab 图
- javascript - 组件不渲染使用时创建的最新数据
- python - 查找具有特定条件的最大项目数
- android - Android Kotlin - 将 Gson 转换的 API 数据存储到房间数据库中
- c++ - 创建具有来自同一类(节点类)的属性的派生类
- php - Gravity Forms - 在提交前验证字段的前 6 个字符是否等于日期字段
- javascript - 实现文本样式的自定义 Native React Native UI 组件
- javascript - 尝试在 mongodb 中加载 javascript 脚本时出错
- python - 如何使用 get_attribute 将属性值抓取为字符串而不是单个字母?