在您的画布上使用JavaScript绘制饼图和柱状图的功能可以通过以下步骤实现:
以下是一个示例代码,实现了上述功能:
<!DOCTYPE html>
<html>
<head>
<title>绘制饼图和柱状图</title>
</head>
<body>
<canvas id="myCanvas" width="400" height="400"></canvas>
<button id="pieChartButton">饼图</button>
<button id="barChartButton">柱状图</button>
<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
// 绘制饼图
function drawPieChart() {
// 饼图数据和颜色
var data = [30, 50, 20]; // 数据可以根据具体需求进行修改
var colors = ["red", "green", "blue"]; // 颜色可以根据具体需求进行修改
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
var radius = Math.min(centerX, centerY) - 10;
var startAngle = 0;
var endAngle = 0;
// 绘制每个扇形
for (var i = 0; i < data.length; i++) {
var sliceAngle = 2 * Math.PI * data[i] / 100;
endAngle = startAngle + sliceAngle;
ctx.beginPath();
ctx.moveTo(centerX, centerY);
ctx.arc(centerX, centerY, radius, startAngle, endAngle);
ctx.closePath();
ctx.fillStyle = colors[i];
ctx.fill();
startAngle = endAngle;
}
}
// 监听饼图按钮的点击事件
var pieChartButton = document.getElementById("pieChartButton");
pieChartButton.addEventListener("click", function() {
drawPieChart();
});
// 更新柱状图
function updateBarChart() {
// 根据饼图数据更新柱状图的数据和颜色
var data = [30, 50, 20]; // 可以根据饼图的点击情况来更新数据
var colors = ["red", "green", "blue"]; // 可以根据饼图的点击情况来更新颜色
// 清空画布
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 绘制柱状图
for (var i = 0; i < data.length; i++) {
var x = 50 + i * 80;
var y = canvas.height - data[i] * 3;
var width = 50;
var height = data[i] * 3;
ctx.fillStyle = colors[i];
ctx.fillRect(x, y, width, height);
}
}
// 监听柱状图按钮的点击事件
var barChartButton = document.getElementById("barChartButton");
barChartButton.addEventListener("click", function() {
updateBarChart();
});
</script>
</body>
</html>
以上代码中,我们使用HTML5的Canvas API绘制了饼图和柱状图,并分别为饼图按钮和柱状图按钮添加了点击事件监听器。当点击饼图按钮时,触发drawPieChart()函数绘制饼图;当点击柱状图按钮时,触发updateBarChart()函数更新柱状图。
请注意,此示例代码仅提供了基本的实现思路和示例,您可以根据具体需求进行修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云