springboot echarts实现标签云
时间: 2023-08-05 09:12:51 浏览: 145
要在Spring Boot中使用echarts实现标签云,需要先引入echarts的js和css文件。可以通过在html文件中引入这些文件来实现。
接下来,在Spring Boot的控制器中,可以将标签云的数据以JSON的形式传递给前端页面。下面是一个简单的示例代码:
```
@Controller
public class TagCloudController {
@GetMapping("/tagcloud")
public String tagCloud(Model model) {
List<Tag> tagList = new ArrayList<>();
tagList.add(new Tag("Java", 10));
tagList.add(new Tag("Spring", 8));
tagList.add(new Tag("MySQL", 6));
tagList.add(new Tag("HTML", 4));
tagList.add(new Tag("CSS", 3));
tagList.add(new Tag("JavaScript", 2));
Gson gson = new Gson();
String tagJson = gson.toJson(tagList);
model.addAttribute("tagJson", tagJson);
return "tagcloud";
}
}
```
在上面的代码中,我们创建了一个Tag类来表示每个标签及其权重。然后,在控制器的tagCloud()方法中,我们创建了一个包含标签信息的列表,并将它转换为JSON格式的字符串。最后,我们将这个字符串添加到Spring Boot模型中,以便在前端页面中使用。
在前端页面中,我们可以使用echarts的wordCloud图表类型来显示标签云。下面是一个简单的示例代码:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tag Cloud</title>
<script src="https://cdn.bootcss.com/echarts/4.7.0/echarts.min.js"></script>
</head>
<body>
<div id="tagCloud" style="width: 800px;height:600px;"></div>
<script type="text/javascript">
var tagJson = [[${tagJson}]];
var tagData = [];
for(var i=0;i<tagJson.length;i++){
tagData.push({name:tagJson[i].name,value:tagJson[i].weight});
}
var myChart = echarts.init(document.getElementById('tagCloud'));
var option = {
series: [{
type: 'wordCloud',
shape: 'circle',
left: 'center',
top: 'center',
width: '80%',
height: '80%',
right: null,
bottom: null,
sizeRange: [12, 60],
rotationRange: [-90, 90],
rotationStep: 45,
gridSize: 8,
drawOutOfBound: false,
textStyle: {
normal: {
fontFamily: 'sans-serif',
fontWeight: 'bold',
color: function () {
return 'rgb(' + [
Math.round(Math.random() * 160),
Math.round(Math.random() * 160),
Math.round(Math.random() * 160)
].join(',') + ')';
}
}
},
data: tagData
}]
};
myChart.setOption(option);
</script>
</body>
</html>
```
在上面的代码中,我们首先将控制器中传递的JSON字符串转换为echarts需要的格式。然后,我们初始化了echarts实例并创建了一个wordCloud图表。最后,我们将转换后的数据添加到图表中,并设置了一些样式选项。
到此为止,我们就可以在Spring Boot应用程序中使用echarts实现标签云了。
阅读全文