帮我生成一段uniapp的canvas横向柱状图的代码
时间: 2023-10-24 13:15:21 浏览: 100
好的,以下是一个简单的uniapp横向柱状图的canvas代码示例:
```html
<template>
<canvas canvas-id="canvas" style="width: 100%; height: 400rpx;"></canvas>
</template>
<script>
export default {
onReady() {
const context = uni.createCanvasContext('canvas', this);
// 数据
const data = [
{ label: 'A', value: 10 },
{ label: 'B', value: 20 },
{ label: 'C', value: 30 },
{ label: 'D', value: 15 },
{ label: 'E', value: 25 },
];
// 计算最大值
const maxValue = Math.max(...data.map(item => item.value));
// 绘制柱状图
const startX = 50;
const startY = 50;
const barWidth = 20;
const gap = 10;
const chartHeight = data.length * (barWidth + gap) - gap;
context.translate(0, chartHeight + startY);
context.rotate(-Math.PI / 2);
data.forEach((item, index) => {
const x = 0;
const y = index * (barWidth + gap);
const width = item.value / maxValue * chartHeight;
context.fillStyle = '#007aff';
context.fillRect(x, y, width, barWidth);
context.fillStyle = '#333';
context.fillText(item.label, x + width + 10, y + barWidth / 2);
});
context.draw();
},
};
</script>
```
这个示例中,我们通过canvas绘制了一个简单的横向柱状图,其中包括了数据、最大值的计算,以及柱状图的绘制。你可以根据自己的需要,修改其中的数据、样式等内容。
阅读全文