J'essaie d'apprendre à utiliser Rechart. La documentation indique que vous pouvez mettre des étiquettes sur les éléments du graphique et donne un exemple de la façon de le faire en utilisant "nom" comme clé de données d'étiquette.
J'ai essayé de le faire dans mon graphique, mais cela ne fonctionne pas.
Si je retire "l'étiquette" du champ, aucune étiquette n'apparaît. Si je le garde, alors les seules étiquettes qui s'affichent sont les valeurs sur les coins du graphique à secteurs.
J'ai une étiquette avec une clé de données de "nom" (selon la documentation) mais elle ne s'affiche pas sur le graphique.
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>
);
}
}
Comment ajoutez-vous des étiquettes aux graphiques à secteurs?
Vous pouvez trouver un exemple pour PieChartWithCustomizedLabel dans http://recharts.org/en-US/examples/PieChartWithCustomizedLabel
ou en dessous du code vous aidera
import React, { PureComponent } from 'react';
import {
PieChart, Pie, Sector, Cell,
} from 'recharts';
const data = [
{ name: 'Group A', value: 400 },
{ name: 'Group B', value: 300 },
{ name: 'Group C', value: 300 },
{ name: 'Group D', value: 200 },
];
const COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042'];
const RADIAN = Math.PI / 180;
const renderCustomizedLabel = ({
cx, cy, midAngle, innerRadius, outerRadius, percent, index,
}) => {
const radius = innerRadius + (outerRadius - innerRadius) * 0.5;
const x = cx + radius * Math.cos(-midAngle * RADIAN);
const y = cy + radius * Math.sin(-midAngle * RADIAN);
return (
<text x={x} y={y} fill="white" textAnchor={x > cx ? 'start' : 'end'} dominantBaseline="central">
{`${(percent * 100).toFixed(0)}%`}
</text>
);
};
export default class Example extends PureComponent {
static jsfiddleUrl = 'https://jsfiddle.net/alidingling/c9pL8k61/';
render() {
return (
<PieChart width={400} height={400}>
<Pie
data={data}
cx={200}
cy={200}
labelLine={false}
label={renderCustomizedLabel}
outerRadius={80}
fill="#8884d8"
dataKey="value"
>
{
data.map((entry, index) => <Cell key={`cell-${index}`} fill={COLORS[index % COLORS.length]} />)
}
</Pie>
</PieChart>
);
}
}
Démo ici - lien