D3.js 是一个强大的JavaScript库,用于数据可视化和交互式图形。以下是一些D3.js示例代码,您可以在这里找到更多资源和教程。
基础示例
以下是一个简单的D3.js示例,展示了如何使用SVG创建一个饼图。
// 引入D3
<script src="https://d3js.org/d3.v7.min.js"></script>
// 数据
const data = [30, 20, 50, 10];
// 创建SVG画布
const svg = d3.select("body").append("svg")
.attr("width", 200)
.attr("height", 200);
// 创建饼图
const arc = d3.arc().outerRadius(80);
// 绘制饼图
svg.selectAll("path")
.data(data)
.enter().append("path")
.attr("d", arc)
.style("fill", (d, i) => `hsl(${i * 120}, 100%, 50%)`);
进阶示例
动画和过渡
以下示例展示了如何使用D3.js为饼图添加动画和过渡效果。
// 引入D3
<script src="https://d3js.org/d3.v7.min.js"></script>
// 数据
const data = [30, 20, 50, 10];
// 创建SVG画布
const svg = d3.select("body").append("svg")
.attr("width", 200)
.attr("height", 200);
// 创建饼图
const arc = d3.arc().outerRadius(80);
// 初始饼图
svg.selectAll("path")
.data(data)
.enter().append("path")
.attr("d", arc)
.style("fill", (d, i) => `hsl(${i * 120}, 100%, 50%)`);
// 动画
d3.select("svg").transition()
.duration(1000)
.attr("width", 300)
.attr("height", 300)
.attr("viewBox", "-100 -100 200 200")
.select("path")
.attr("d", arc)
.attr("fill", "hsl(0, 100%, 50%)");
资源链接
更多D3.js教程和示例,请访问我们的社区教程页面。
<div><center><img src="https://cloud-image.ullrai.com/q/D3.js_Logo/" alt="D3.js Logo"/></center></div>