SVG 还能与前端库完美配合。下面是一个 React 组件生成数据驱动图表的示例。在这个示例中,我们有两件事。我们正要成一个矩形列表,以便根据一些任意数据创建一个列图。此外,我们还为折线生成了一系列坐标。
对于简单的用例,你可以像这样编写自己的图表。但如果你需要更复杂的图表,那么可以使用 D3 库。D3 库使用 SVG 创建各种图表。
function Diagram() {
const dataPoints = [3, 4, 7, 5, 3, 6];
const sineWave = Array.from({ length: 115 })
.map((item, index) => `${index - 55},${Math.sin(index / 20) * 20 + 10}`)
.join(" ");
return (
<svg width="200" height="200" viewBox="-100 -100 200 200">
{dataPoints.map((dataPoint, index) => (
<rect
key={index}
x={index * 20 - 55}
y={50 - dataPoint * 10}
width="15"
height={dataPoint * 10}
fill="#CD803D"
/>
))}
<polyline points={sineWave} fill="none" stroke="black" stroke-width="5" />
</svg>
);
}
分享: |