JavaScript 画柱形图
时间: 2023-09-03 15:16:49 浏览: 76
JavaScript 可以使用 HTML5 的 Canvas API 绘制柱形图,具体实现方式如下:
1. 在 HTML 中创建一个 Canvas 元素:
```html
<canvas id="myCanvas"></canvas>
```
2. 在 JavaScript 中获取 Canvas 的上下文对象:
```javascript
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
```
3. 定义柱形图的数据和样式:
```javascript
var data = [20, 50, 30, 80, 60];
var barColor = "#ff6600";
var barWidth = 30;
var barMargin = 20;
var barHeightScale = 5;
var startX = 50;
var startY = canvas.height - 50;
```
其中,`data` 数组存储了每个柱形的数据值,`barColor` 是柱形的颜色,`barWidth` 是柱形的宽度,`barMargin` 是柱形之间的间距,`barHeightScale` 是柱形高度与数据值的比例系数,`startX` 和 `startY` 是第一个柱形的起始坐标。
4. 绘制柱形图:
```javascript
for (var i = 0; i < data.length; i++) {
var barHeight = data[i] * barHeightScale;
var x = startX + (barWidth + barMargin) * i;
var y = startY - barHeight;
ctx.fillStyle = barColor;
ctx.fillRect(x, y, barWidth, barHeight);
}
```
其中,`for` 循环遍历每个数据值,并根据相应的坐标和尺寸绘制柱形。
完整代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>柱形图示例</title>
</head>
<body>
<canvas id="myCanvas"></canvas>
<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var data = [20, 50, 30, 80, 60];
var barColor = "#ff6600";
var barWidth = 30;
var barMargin = 20;
var barHeightScale = 5;
var startX = 50;
var startY = canvas.height - 50;
for (var i = 0; i < data.length; i++) {
var barHeight = data[i] * barHeightScale;
var x = startX + (barWidth + barMargin) * i;
var y = startY - barHeight;
ctx.fillStyle = barColor;
ctx.fillRect(x, y, barWidth, barHeight);
}
</script>
</body>
</html>
```
运行代码后,可以看到一个简单的柱形图。可以根据实际需求进行样式和数据的调整。
阅读全文