echarts饼状图异步加载数据
时间: 2024-12-31 10:18:54 浏览: 10
### 关于 ECharts 饼状图异步加载数据
在 Web 应用程序中,为了提高用户体验并减少初始页面加载时间,通常会采用异步方式来加载图表所需的数据。对于 ECharts 的饼状图而言,可以通过 JavaScript 或者 jQuery 来发起 AJAX 请求获取服务器端返回的数据,并利用 `setOption` 函数动态刷新图表显示。
下面是一个完整的 Java Spring Boot 后端配合前端 HTML 页面展示带有异步加载功能的 ECharts 饼状图的例子:
#### 服务端 (Java Spring Boot)
首先定义一个 RESTful API 接口用于提供给前端调用以取得饼图所需的统计数据[^1]。
```java
@RestController
@RequestMapping("/api/chart")
public class ChartController {
@GetMapping("/pieData")
public ResponseEntity<List<PieChartData>> getPieChartData() {
List<PieChartData> pieChartDataList = Arrays.asList(
new PieChartData("类别A", 335),
new PieChartData("类别B", 310),
new PieChartData("类别C", 274)
);
return ResponseEntity.ok(pieChartDataList);
}
}
```
其中 `PieChartData` 是自定义的一个类用来封装每个扇区的名字及其对应的数值。
#### 客户端 (HTML + JS)
接着是在客户端部分编写 HTML 文件以及嵌入必要的脚本逻辑完成图表渲染工作。这里假设已经引入了 ECharts 和 jQuery 库文件。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ECharts 异步加载饼状图</title>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/echarts@latest/dist/echarts.min.js"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 初始化 echarts 实例
var myChart = echarts.init(document.getElementById('main'));
$.ajax({
url : '/api/chart/pieData',
method : 'GET',
success : function(result){
var option = {
title : {
text: '某站点用户访问来源'
},
tooltip : {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left'
},
series : [
{
name: '访问来源',
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:result.map(function(item){return {value:item.value, name:item.name}})
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
});
</script>
</body>
</html>
```
上述代码片段展示了如何通过发送 GET 请求至 `/api/chart/pieData` 获取 JSON 格式的响应体作为饼图的数据源,并将其解析成适合传入 `series.data` 属性的形式再传递给 `myChart.setOption()` 方法从而达到更新视图的目的[^2]。
阅读全文