echarts实现浏览器本地读取csv文件绘制出一张饼图,csv文件格式是行是年份,列是年龄范围,写出具体代码
时间: 2024-05-11 12:17:45 浏览: 150
echarts制作的饼状图
4星 · 用户满意度95%
以下是一个简单的echarts实现浏览器本地读取csv文件绘制饼图的代码示例:
HTML代码:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts CSV饼图示例</title>
<!-- 引入 ECharts 文件 -->
<script src="https://cdn.jsdelivr.net/npm/echarts@4.9.0/dist/echarts.min.js"></script>
</head>
<body>
<!-- 用于显示饼图的 DOM -->
<div id="pie-chart" style="width: 800px;height:600px;"></div>
<!-- 用于上传 CSV 文件的 input -->
<input type="file" id="csv-file">
</body>
<!-- 引入 JavaScript 文件 -->
<script src="demo.js"></script>
</html>
```
JavaScript代码:
```
// 获取 input 元素和饼图 DOM
var fileInput = document.getElementById('csv-file');
var pieChart = echarts.init(document.getElementById('pie-chart'));
// 监听 input 的 change 事件
fileInput.addEventListener('change', function() {
// 获取所选的文件
var file = fileInput.files[0];
if (file) {
// 创建一个 FileReader 对象
var reader = new FileReader();
// 监听 FileReader 对象的 load 事件
reader.addEventListener('load', function(event) {
// 获取文件内容
var csvData = event.target.result;
// 将 CSV 数据解析为二维数组
var dataArray = Papa.parse(csvData).data;
// 转换数据格式
var ageData = [];
for (var i = 1; i < dataArray.length; i++) {
var ageRange = dataArray[i][0];
for (var j = 1; j < dataArray[i].length; j++) {
ageData.push({
name: ageRange + '岁',
value: dataArray[i][j]
});
}
}
// 绘制饼图
pieChart.setOption({
title: {
text: '年龄分布饼图'
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)'
},
series: [{
name: '年龄分布',
type: 'pie',
radius: '55%',
center: ['50%', '50%'],
data: ageData,
label: {
formatter: '{b}: {c} ({d}%)'
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}]
});
});
// 将文件读取为文本
reader.readAsText(file);
}
});
```
以上代码使用了 PapaParse 库将 CSV 数据解析为二维数组,使用了 ECharts 库绘制饼图,并使用了 FileReader API 读取本地文件。用户选择一个 CSV 文件后,就可以在页面上看到对应的饼图。
阅读全文