<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Canvas绘制饼状图</title>
</head>
<body style="padding: 100px;">
<canvas id="canvas" width="900" height="600" style="border:1px solid #000"></canvas>
<script>
// 1. 获取标签
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
// 2. 数据
var data = [
{name: '上海', color: 'red', value: .1},
{name: '北京', color: 'green', value: .3},
{name: '广州', color: 'blue', value: .15},
{name: '深圳', color: 'orange', value: .25},
{name: '杭州', color: 'pink', value: .2}
];
// 3. 绘制
// 3.1 常量
var x0 = canvas.width * 0.5,
y0 = canvas.height * 0.5;
var radius = 150;
var beginAngle = -90 * Math.PI / 180;
for(var i=0; i<data.length; i++){
// 结束角度
var tempAngle = 360 * data[i].value * Math.PI / 180,
endAngle = beginAngle + tempAngle;
ctx.beginPath();
// 设置起点
ctx.moveTo(x0, y0);
ctx.arc(x0, y0, radius, beginAngle, endAngle);
ctx.fillStyle = data[i].color;
ctx.fill();
// 更新起始角度
beginAngle = endAngle;
}
</script>
</body>
</html>
10饼状图
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近公司给我一个任务,就是利用arcgis api for flex实现在地图上点(业务数据)直接显示饼状图以及柱...