Recharts是一个基于React和D3的图表库,可以用于在网页中创建各种类型的图表。使用Recharts创建动态创建的堆叠条形图,并在顶部条形上添加圆边可以通过以下步骤实现:
npm install recharts
import React from "react";
import { BarChart, Bar, XAxis, YAxis, Legend, Tooltip, ResponsiveContainer } from "recharts";
class StackedBarChart extends React.Component {
render() {
return (
<ResponsiveContainer width="100%" height={300}>
<BarChart data={this.props.data}>
<XAxis dataKey="name" />
<YAxis />
<Tooltip />
<Legend />
{this.props.keys.map((key, index) => (
<Bar key={index} dataKey={key} stackId="stack" fill={this.props.colors[index % this.props.colors.length]}>
// 在顶部条形上添加圆边
<TopBarLabel />
</Bar>
))}
</BarChart>
</ResponsiveContainer>
);
}
}
const TopBarLabel = (props) => {
const { x, y, width, value } = props;
const radius = Math.min(width, 10); // 圆边半径为宽度的一半或10(取较小值)
return (
<g>
<rect x={x} y={y} width={width} height={radius} fill="transparent" /> // 用一个透明的矩形占位,使得整个条形都能响应事件
<circle cx={x + width / 2} cy={y + radius / 2} r={radius / 2} fill="blue" /> // 添加圆边
<text x={x + width / 2} y={y + radius / 2 + 4} fill="#fff" textAnchor="middle" dominantBaseline="middle">
{value}
</text>
</g>
);
};
const data = [
{ name: "A", category1: 10, category2: 20, category3: 30 },
{ name: "B", category1: 15, category2: 25, category3: 35 },
{ name: "C", category1: 20, category2: 30, category3: 40 },
];
const keys = ["category1", "category2", "category3"]; // 数据中各个类别的字段名
const colors = ["#8884d8", "#82ca9d", "#ffc658"]; // 各个类别的颜色
ReactDOM.render(<StackedBarChart data={data} keys={keys} colors={colors} />, document.getElementById("root"));
这样,使用Recharts就可以在动态创建的堆叠条形图的顶部条形上添加圆边。你可以根据需要自定义圆边的样式,比如颜色、大小等。在以上代码中,我们使用了一个自定义组件TopBarLabel
来实现在顶部条形上添加圆边,并在圆边上显示条形的具体数值。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上链接为示例,具体的产品选择应根据需求和实际情况来决定。
领取专属 10元无门槛券
手把手带您无忧上云