我正在尝试学习如何使用Rechart。该文档说您可以在图表元素上放置标签,并举例说明如何使用“名称”作为标签数据键。
我试图在我的图表中执行此操作,但是它不起作用。
如果我从字段中删除“标签”,则不会显示任何标签。如果我保留它,那么显示的唯一标签就是饼图楔形上的值。
我有一个标签,其数据键为“名称”(根据文档),但未在图表上呈现。
import React, { PureComponent } from 'react';
import {
ResponsiveContainer, PieChart, Pie, Legend, Label, LabelList
} from 'recharts';
const data = [
{ name: 'Group A', value: 400 }, { name: 'Group B', value: 300 },
{ name: 'Group C', value: 300 }, { name: 'Group D', value: 200 },
];
export default class Example extends PureComponent {
static jsfiddleUrl = '//jsfiddle.net/alidingling/6okmehja/';
render() {
return (
<div style={{ width: '100%', height: 300 }}>
<ResponsiveContainer>
<PieChart>
<Pie dataKey="value"
data={data}
fill="#8884d8"
Label dataKey="name"
/>
</PieChart>
</ResponsiveContainer>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
如何为饼图添加标签?
对于其他寻找答案的人来说,这有效:
定义一个函数以按照您想要的方式呈现标签,例如:
let renderLabel = function(entry) {
return entry.name;
}
Run Code Online (Sandbox Code Playgroud)
将 label 属性设置为指向您的函数:
<Pie label={renderLabel} [ you other properties ]>
[ your content ]
</Pie>
Run Code Online (Sandbox Code Playgroud)
小智 5
抱歉耽搁了,我终于能够想出一个解决方案,即使它不是很简单
const {ResponsiveContainer, PieChart, Pie, Legend} = Recharts;
const data = [{name: 'Group A', value: 400}, {name: 'Group B', value: 300},
{name: 'Group C', value: 300}, {name: 'Group D', value: 200}]
const RADIAN = Math.PI / 180;
const renderCustomizedLabel = ({
x, y, name
}) => {
return (
<text x={x} y={y} fill="black" textAnchor="end" dominantBaseline="central">
{name}
</text>
);
};
const SimplePieChart = React.createClass({
render () {
return (
<ResponsiveContainer>
<PieChart>
<Pie data={data} fill="#8884d8" label={renderCustomizedLabel} nameKey="name"/>
</PieChart>
</ResponsiveContainer>
);
}
})
ReactDOM.render(
<SimplePieChart />,
document.getElementById('container')
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1272 次 |
| 最近记录: |