用html、css、JS帮我画一个饼图

动态 未结 0 76
小小草
小小草 LV1 2023年9月23日 23:40 发表
好的,以下是一个简单的饼图示例: HTML 代码: ```html
``` CSS 代码: ```css .pie-chart { position: relative; width: 300px; height: 300px; } #chart { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } ``` JS 代码: ```javascript const data = [ { label: 'A', value: 30, color: '#f44336' }, { label: 'B', value: 20, color: '#9c27b0' }, { label: 'C', value: 50, color: '#2196f3' } ]; const canvas = document.getElementById('chart'); const ctx = canvas.getContext('2d'); // 计算总值 const totalValue = data.reduce((sum, item) => sum + item.value, 0); // 绘制饼图 let startAngle = 0; data.forEach(item => { const angle = (item.value / totalValue) * Math.PI * 2; ctx.beginPath(); ctx.moveTo(canvas.width / 2, canvas.height / 2); ctx.arc(canvas.width / 2, canvas.height / 2, canvas.width / 2, startAngle, startAngle + angle); ctx.fillStyle = item.color; ctx.fill(); startAngle += angle; }); // 绘制图例 let legendHTML = ''; data.forEach(item => { legendHTML += `
${item.label}: ${item.value}
`; }); document.querySelector('.pie-chart').insertAdjacentHTML('beforeend', `
${legendHTML}
`); ``` 解释: 1. HTML 代码中,我们使用一个 `canvas` 元素来绘制饼图,将其包裹在一个容器元素内,并设置容器元素的宽度和高度。 2. CSS 代码中,我们设置容器元素为相对定位,`canvas` 元素为绝对定位,并将其宽度和高
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复