在Recharts中为条形图的每个条形顶部添加边框可以通过自定义Bar
组件的fill
属性来实现。以下是一个简单的示例代码,展示了如何实现这一效果:
import React from 'react';
import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts';
const data = [
{ name: 'Page A', uv: 4000, pv: 2400, amt: 2400 },
{ name: 'Page B', uv: 3000, pv: 1398, amt: 2210 },
{ name: 'Page C', uv: 2000, pv: 9800, amt: 2290 },
{ name: 'Page D', uv: 2780, pv: 3908, amt: 2000 },
{ name: 'Page E', uv: 1890, pv: 4800, amt: 2181 },
{ name: 'Page F', uv: 2390, pv: 3800, amt: 2500 },
];
const BorderBar = (props) => {
const { x, y, width, height, fill } = props;
return (
<>
<Bar x={x} y={y} width={width} height={height} fill={fill} />
<line x1={x} y1={y + height} x2={x + width} y2={y + height} stroke="black" strokeWidth="1" />
</>
);
};
const App = () => {
return (
<BarChart width={600} height={300} data={data}>
<CartesianGrid strokeDasharray="5 5" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip />
<Legend />
<Bar dataKey="uv" fill="#8884d8" minPointSize={10} barSize={20} component={BorderBar} />
</BarChart>
);
};
export default App;
在这个示例中,我们创建了一个名为BorderBar
的新组件,它渲染一个Bar
组件和一个line
元素。line
元素用于在条形的顶部绘制一条黑色的线,从而实现边框效果。
这种技术可以用于任何需要强调条形图顶部数据的场景,例如显示库存水平、销售目标达成情况或其他需要突出显示的数据点。
strokeWidth
属性来增加边框线的粗细。x1
, y1
, x2
, y2
的值,确保它们正确地对应条形的顶部边缘。通过这种方式,你可以为Recharts条形图的每个条形顶部添加自定义的边框效果。
领取专属 10元无门槛券
手把手带您无忧上云