springmvc + echarts实现动态饼图
时间: 2023-10-13 21:06:45 浏览: 156
echarts制作的饼状图
4星 · 用户满意度95%
实现动态饼图的关键是要通过Spring MVC将数据传递给前端,然后使用ECharts进行渲染。
首先,你需要在Spring MVC中创建一个Controller来处理数据请求。该Controller应该返回一个包含动态饼图数据的JSON对象。以下是一个示例Controller:
```java
@Controller
@RequestMapping(value = "/chart")
public class ChartController {
@RequestMapping(value = "/pie", method = RequestMethod.GET)
public @ResponseBody List<PieData> getPieChartData() {
List<PieData> data = new ArrayList<>();
// 获取动态饼图数据
// 将数据封装成PieData对象
return data;
}
}
```
接下来,你需要在前端页面中使用ECharts来渲染动态饼图。以下是一个基本的HTML页面示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>动态饼图</title>
<!-- 引入ECharts库 -->
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.9.0/echarts.min.js"></script>
</head>
<body>
<div id="chart" style="width: 600px;height:400px;"></div>
<script>
// 使用jQuery来发送AJAX请求
$.ajax({
url: "/chart/pie",
type: "GET",
dataType: "json",
success: function (data) {
// 根据返回的数据渲染饼图
var chart = echarts.init(document.getElementById('chart'));
chart.setOption({
title: {
text: '动态饼图',
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)'
},
legend: {
orient: 'vertical',
left: 10,
data: data.map(function(item){
return item.name;
})
},
series: [
{
name: '数据来源',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '30',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: data
}
]
});
}
});
</script>
</body>
</html>
```
上面的代码中,我们使用jQuery来发送一个GET请求来获取动态饼图数据。在成功回调函数中,我们使用ECharts来渲染动态饼图。注意,我们在legend中使用了data.map方法来提取数据中的“name”属性,这样可以动态生成图例。
最后,你需要创建一个PieData类来封装动态饼图数据。以下是一个示例类:
```java
public class PieData {
private String name;
private int value;
// 构造函数、getter和setter省略
}
```
这样,你就可以通过Spring MVC和ECharts来实现动态饼图了。
阅读全文