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>
);
}
}
円グラフにラベルを追加するにはどうすればよいですか?
PieChartWithCustomizedLabelの例は http://recharts.org/en-US/examples/PieChartWithCustomizedLabel にあります。
または以下のコードが役立ちます
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>
);
}
}
ここにデモ- リンク