IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> springboot-Echarts-动态饼状图、折线图、柱状图——代码实现-实例说明 -> 正文阅读

[JavaScript知识库]springboot-Echarts-动态饼状图、折线图、柱状图——代码实现-实例说明

springboot-Echarts-动态饼状图、折线图、柱状图——代码实现-实例说明

我用的工具是 idea ->

第一步:连接好数据库 mysql(其他数据库也可),建一张表 pojo ,里面放两个字段 x、y;

第二步:写好一个pojo实体类,我的实体类如下所示 ->

@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Pojo {
    private x;
    private y;
}

第三步:写好Dao层、Service层、Mapper层的代码 -> 就是查询出数据库 pojo 表中中所有的 x、y 的数据;

第四步:写好一个 controller 控制层
? ? ? ? ? ? ? 1. 调用 Service 层查询所有 x、y 数据的方法,查出的数据封装到 List 表单对象?pojos 里面去;
? ? ? ? ? ? ? 2. 返回该对象 pojos? ? ? ? ? ? ? ?
? ? ? ? ? ? ? 3. 我的 controller 如下所示 ->

@Controller
public class MyController {

    @Autowired
    private PojoService pojoService

    //饼状图的数据查询
    @ResponseBody
    @RequestMapping("/pojos_bing")
    public List<Pojo> gotoIndex() {
        List<Pojo> pojos = pojoService.selectAllPojos();
        return pojos;
    }
}

????????接下来html 代码?java script 里面的代码有可能会报有 红色波浪,但是我这里没关系,仍然不影响运行;

第五步:写好前端 index.html 代码,我这里用的是 thymeleaf 模板引擎? -> 饼状图

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>

<!--饼状图-->
<div id="pie" style="width:800px;height:600px;"></div>

<script th:src="@{https://cdn.bootcdn.net/ajax/libs/echarts/5.4.0/echarts.min.js}"></script>
<script>
    option = {
        title: {
          text:'饼图示例',
            subtext:'纯属虚构',
            left:'center'
        },
        legend: {
            top: 'bottom'
        },
        tooltip:{
          trigger:'item'
        },
        toolbox: {
            show: true,
            feature: {
                mark: { show: true },
                dataView: { show: true, readOnly: false },
                restore: { show: true },
                saveAsImage: { show: true }
            }
        },
        series: [
            {
                name: 'Nightingale Chart',
                type: 'pie',
                radius: [50, 250],
                center: ['50%', '50%'],
                roseType: 'area',
                itemStyle: {
                    borderRadius: 8
                },
                data: [

                ]
            }
        ]
    };
    var chartDom = document.getElementById('pie');
    var myChart = echarts.init(chartDom);

//######################################################################################
//#######################从上面到这里的代码全部复制粘贴即可###############################
//######################################################################################

    fetch("/pojos_bing").then(response => response.json()).then(res => { //这里的 /pojos_bing 就是换成自己刚刚Controller层写好的查询数据的接口
        res.forEach(item => {
            option.series[0].data.push({name: item.x,value: item.y}) //这里遍历x和y就是数据库数据
        })
        myChart.setOption(option);
    })
</script>
</body>
</html>

第五步:写好前端 index.html 代码,我这里用的是 thymeleaf 模板引擎? -> 线性图

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
<script th:src="@{https://cdn.bootcdn.net/ajax/libs/echarts/5.4.0/echarts.min.js}"></script>
<!--线形图-->
<div style="height: 50px;"></div>
<div id="line" style="width: 1000px;height: 800px;"></div>
<script>
    lineOption = {
        title: {
            text: '折线图堆叠'
        },
        legend: {
          top: 'top'
        },
        tooltip: {
            trigger: 'axis'
        },
        xAxis: {
            type: 'category',
            data: []
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
                name: '11',
                data: [],
                type: 'line'
            },
            {
                name: '22',
                data: [],
                type: 'line'
            }
        ]
    };

    var lineDom = document.getElementById('line');
    var lineChart = echarts.init(lineDom);

//######################################################################################
//#######################从上面到这里的代码全部复制粘贴即可###############################
//######################################################################################

    fetch("/pojos_bing").then(response => response.json()).then(res => {//这里的 /pojos_bing 就是换成自己刚刚Controller层写好的查询数据的接口
        
        const x= res.map(v => v.x);//这里拿到数据库中的 x 
        lineOption.xAxis.data = x

        const y= res.map(v => v.y);//这里拿到数据库中的 y
        lineOption.series[0].data = y

        lineChart.setOption(lineOption)
    })

</script>
</body>
</html>

第五步:写好前端 index.html 代码,我这里用的是 thymeleaf 模板引擎? -> 柱状图

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
<script th:src="@{https://cdn.bootcdn.net/ajax/libs/echarts/5.4.0/echarts.min.js}"></script>
<!--柱状图-->
<div style="height: 50px;"></div>
<div id="bar" style="width: 1000px;height: 800px;"></div>
<script>
    barOption = {
        title: {
            text: '柱状图'
        },
        legend: {
            top: 'top'
        },
        tooltip: {
            trigger: 'axis'
        },
        xAxis: {
            type: 'category',
            data: []
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
                name: '11',
                data: [],
                type: 'bar'
            },
            {
                name: '22',
                data: [],
                type: 'bar'
            }
        ]
    };

    var barDom = document.getElementById('bar');
    var barChart = echarts.init(barDom);

//######################################################################################
//#######################从上面到这里的代码全部复制粘贴即可###############################
//######################################################################################

    fetch("/pojos_bing").then(response => response.json()).then(res => {//这里的 /pojos_bing 就是换成自己刚刚Controller层写好的查询数据的接口

        const x= res.map(v => v.x);//这里拿到数据库中的 x 
        barOption.xAxis.data = x

        const y= res.map(v => v.y);//这里拿到数据库中的 y
        barOption.series[0].data = y

        barChart.setOption(barOption)
    })

</script>
</body>
</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:32:10  更:2022-10-08 20:34:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 18:08:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码