SpringBoot整合Echarts完成图表显示

12 篇文章 0 订阅
7 篇文章 0 订阅

SpringBoot是我非常喜欢的一个后台框架,开发迅速便捷且功能强大。ECharts是一个免费的、功能强大的、可视化的一个库。它可以非常简单的往软件产品中添加直观的、动态的和高度可定制化的图表。它是一个全新的基于zrender的用纯JavaScript打造完成的canvas库。
之所以在这里将两者结合起来是因为要为日后的数据可视化的学习做准备。这两者的详细信息都可以去官网上了解一下官方文档
快速构建springboot项目我就不说了,这里直接贴出我的核心代码和项目架构。详细代码请参考我的相应github仓库 https://github.com/29DCH/Real-time-log-analysis-system 欢迎star+fork!

在这里插入图片描述
如上图所示,在资源目录文件夹下面的static/js和templates中分别添加和新建echarts.min.js和test.html文件,echarts.min.js文件可以去官网或者我的github仓库下载。
application.properties文件中可以配置你自己的项目访问路径和端口号。
pom.xml文件加上thymeleaf依赖(显示静态页面用的)

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>test</title>

    <!-- 引入 ECharts 文件 -->
    <script src="js/echarts.min.js"></script>
</head>
<body>

<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 600px;height:400px;position: absolute; top:50%; left: 50%; margin-top: -200px;margin-left: -300px"></div>


<script type="text/javascript">
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));

    // 指定图表的配置项和数据
    option = {
    backgroundColor: '#2c343c',

    title: {
        text: 'Customized Pie',
        left: 'center',
        top: 20,
        textStyle: {
            color: '#ccc'
        }
    },

    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },

    visualMap: {
        show: false,
        min: 80,
        max: 600,
        inRange: {
            colorLightness: [0, 1]
        }
    },
    series : [
        {
            name:'访问来源',
            type:'pie',
            radius : '55%',
            center: ['50%', '50%'],
            data:[
                {value:335, name:'直接访问'},
                {value:310, name:'邮件营销'},
                {value:274, name:'联盟广告'},
                {value:235, name:'视频广告'},
                {value:400, name:'搜索引擎'}
            ].sort(function (a, b) { return a.value - b.value; }),
            roseType: 'radius',
            label: {
                normal: {
                    textStyle: {
                        color: 'rgba(255, 255, 255, 0.3)'
                    }
                }
            },
            labelLine: {
                normal: {
                    lineStyle: {
                        color: 'rgba(255, 255, 255, 0.3)'
                    },
                    smooth: 0.2,
                    length: 10,
                    length2: 20
                }
            },
            itemStyle: {
                normal: {
                    color: '#c23531',
                    shadowBlur: 200,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            },

            animationType: 'scale',
            animationEasing: 'elasticOut',
            animationDelay: function (idx) {
                return Math.random() * 200;
            }
        }
    ]
};

    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>
</body>
</html>

注意这一段代码

// 指定图表的配置项和数据
   option = {
    backgroundColor: '#2c343c',

    title: {
        text: 'Customized Pie',
        left: 'center',
        top: 20,
        textStyle: {
            color: '#ccc'
        }
    },

    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },

    visualMap: {
        show: false,
        min: 80,
        max: 600,
        inRange: {
            colorLightness: [0, 1]
        }
    },
    series : [
        {
            name:'访问来源',
            type:'pie',
            radius : '55%',
            center: ['50%', '50%'],
            data:[
                {value:335, name:'直接访问'},
                {value:310, name:'邮件营销'},
                {value:274, name:'联盟广告'},
                {value:235, name:'视频广告'},
                {value:400, name:'搜索引擎'}
            ].sort(function (a, b) { return a.value - b.value; }),
            roseType: 'radius',
            label: {
                normal: {
                    textStyle: {
                        color: 'rgba(255, 255, 255, 0.3)'
                    }
                }
            },
            labelLine: {
                normal: {
                    lineStyle: {
                        color: 'rgba(255, 255, 255, 0.3)'
                    },
                    smooth: 0.2,
                    length: 10,
                    length2: 20
                }
            },
            itemStyle: {
                normal: {
                    color: '#c23531',
                    shadowBlur: 200,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            },

            animationType: 'scale',
            animationEasing: 'elasticOut',
            animationDelay: function (idx) {
                return Math.random() * 200;
            }
        }
    ]
};

可以替换成其他模板,详情见官网中的实例 http://echarts.baidu.com/examples/
在这里插入图片描述

在这里插入图片描述

HelloSpringBoot.java

package Test;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@RestController
public class HelloSpringBoot {

    @RequestMapping(value = "/example", method = RequestMethod.GET)
    public ModelAndView firstDemo() {
        return new ModelAndView("test");
    }
}

运行springboot项目,输入指定好的访问路径,这里我是http://localhost:8081/tc/example

我这边的代码(只是部分,详情见上面说过的我的github仓库)以及一些端口、路径可能和上传到我github仓库中的有不一样的地方,你们下好以后照着自己的情况修改好就能运行。不一定要完全照我的来,我这里只是给出了全部的思路和流程而已。

运行好以后效果如下:
在这里插入图片描述

在这里插入图片描述

上面说了可以有更多的效果,去官网复制样例的代码替换test.html中option部分即可达到你想要的效果。
注意这里的例子中数据都是固定死了的(静态的),当然我这里只是给你们举个例子。到后面的实际项目中可以用后端提供的数据接口把指定数据传入文件指定位置对接好即可,就能达到将数据库中的数据可视化显示出来的效果。

这里只是Echarts的小部分内容,随着后面项目(数据可视化)、学习的进一步深入,将持续完善Echarts的介绍

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个非常流行的 Java Web 开发框架,而 ECharts 是一个非常流行的可视化图表库。Spring Boot 可以轻松地整合 ECharts,以下是整合的步骤: 1. 在 pom.xml 中添加 ECharts 的依赖: ```xml <dependency> <groupId>org.webjars</groupId> <artifactId>echarts</artifactId> <version>{echarts-version}</version> </dependency> ``` 2. 创建一个 Spring Boot 控制器类,用于渲染 ECharts 图表: ```java @Controller public class EChartsController { @GetMapping("/echarts") public String echarts(Model model) { // 构造图表数据 List<Integer> data = Arrays.asList(1, 2, 3, 4, 5); // 将数据传递给模板引擎 model.addAttribute("data", data); // 返回模板名称 return "echarts"; } } ``` 3. 创建一个 Thymeleaf 模板文件,用于渲染 ECharts 图表: ```html <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>ECharts Demo</title> <!-- 引入 ECharts 的 CSS 文件 --> <link rel="stylesheet" th:href="@{/webjars/echarts/{echarts-version}/echarts.min.css}"/> </head> <body> <!-- 渲染 ECharts 图表 --> <div id="chart"></div> <!-- 引入 ECharts 的 JS 文件 --> <script th:src="@{/webjars/echarts/{echarts-version}/echarts.min.js}"></script> <script th:inline="javascript"> // 获取数据 var data = [[${data}]]; // 初始化图表 var chart = echarts.init(document.getElementById('chart')); chart.setOption({ xAxis: { type: 'category', data: ['A', 'B', 'C', 'D', 'E'] }, yAxis: { type: 'value' }, series: [{ data: data, type: 'bar' }] }); </script> </body> </html> ``` 以上就是 Spring Boot 整合 ECharts 的基本步骤。在实际开发中,还需要根据具体需求进行一些配置和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值