SpringBoot+echart实现柱状图和饼状图


前言

信息时代随着数据量不断增多,图表化显示数据显得尤为重要,项目中需要多样化展示数据,也是必不可少的模块


一、Echart

在这里插入图片描述

链接: Apache ECharts

1.引入Echarts

npm安装:npm install echarts --sav
引入:import * as echarts from ‘echarts’;

cdn: https://cdn.bootcdn.net/ajax/libs/echarts/5.4.0/echarts.common.js

2.示例:

可直接进入示例选择你中意的数据展示模板

在这里插入图片描述

点击进入之后可以编辑出你想要的效果后再放进你的前端模块内

在这里插入图片描述

二、整合SpringBoot

1.引入库

cdn获取:

<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.4.0/echarts.common.js"></script>

2.前端模块

前端指定一个盒子给定一个id;

<div id="main" style="width: 600px;height:400px;"></div>

展示数据我们需要从后端传值过来通过异步获取
name是列名(模块名),value是值,跟键值对一个意思

$.ajax({
            url:'/getAll',
            type:'get',
            datatype:'json',
            success:function (data){
                if (data.length>0){
                    var name=[];
                    var value=[];
                    for (let i = 0; i < data.length; i++) {
                       name.push(data[i].name);
                        value.push(data[i].count);
                    }
                    
                    var chartDom = document.getElementById('main');
                    var myChart = echarts.init(chartDom, 'dark');
                    var option;

                    option = {
                        xAxis: {
                            type: 'category',
                            data: name
                        },
                        yAxis: {
                            type: 'value'
                        },
                        series: [
                            {
                                data: value,
                                type: 'bar'
                            }
                        ]
                    };

                    option && myChart.setOption(option);
                }
                }
        });

3.数据库信息

在这里插入图片描述

后端接口直接传递全部信息就可以,异步请求成功后的回调函数

4.柱状图:

在这里插入图片描述

5.饼状图:

饼状图传参是对象数组,需要特定的格式;

饼状图需要的数据结构:
在这里插入图片描述

树状图需要的数据结构:

在这里插入图片描述

可以看出饼状图需要的是对象数组,而柱状图只需要数组即可

6.饼状图数据集传递

饼状图需要的是一个数组内包含键值对方式的对象集合、我们可以联想到后端的数据结构就是一个List集合内嵌套一个Map集合;

代码如下:

	@RequestMapping("/getAllretenrJson")
    @ResponseBody
    public ArrayList<Map<String,String>> getAllOnJson(){
        //数组集合嵌套键值对集合
        ArrayList<Map<String,String>>list=new ArrayList<>();
        //查询所有数据
        List<Baga> bagaList = bagaService.list();
        for (int i = 0; i < bagaList.size(); i++) {
            HashMap<String,String>map=new HashMap<>();
            //name为键
            map.put("name",bagaList.get(i).getName());
            //value为值
            map.put("value",bagaList.get(i).getCount().toString());
            //存入list
            list.add(map);
        }
        return list;
    }

异步函数:

$.get({
            url:'getAllretenrJson',
            type:'get',
            datatype:'json',
            success:function (data){
                var chartDom_tow = document.getElementById('main_tow');
                var myChart_tow = echarts.init(chartDom_tow, 'dark');
                var option_tow;

                option_tow = {
                    series: [
                        {
                            type: 'pie',
                            data:data
                        }
                    ]
                };
                option_tow && myChart_tow.setOption(option_tow);
            }
        })

最后数据成功展示:
在这里插入图片描述


  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果你想在 ASP.NET 中使用 ECharts 来展示柱状图,并且希望添加一个自动轮播的提示框,可以参考以下代码: ```html <div id="chart" style="width: 600px; height: 400px;"></div> <script src="https://cdn.staticfile.org/echarts/4.7.0/echarts.min.js"></script> <script> // 初始化 ECharts 实例 var myChart = echarts.init(document.getElementById('chart')); // 配置柱状图的数据和样式 var option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: 'bar', name: 'sales' }] }; // 设置柱状图的配置项和数据 myChart.setOption(option); // 自动轮播提示框 var currentIndex = -1; setInterval(function () { var dataLen = option.series[0].data.length; // 取消之前高亮的图形 myChart.dispatchAction({ type: 'downplay', seriesIndex: 0, dataIndex: currentIndex }); currentIndex = (currentIndex + 1) % dataLen; // 高亮当前图形 myChart.dispatchAction({ type: 'highlight', seriesIndex: 0, dataIndex: currentIndex }); // 显示提示框 myChart.dispatchAction({ type: 'showTip', seriesIndex: 0, dataIndex: currentIndex }); }, 2000); </script> ``` 这段代码首先创建了一个 ECharts 实例,然后配置了柱状图的数据和样式,接着使用 `setOption` 方法将配置项和数据设置给柱状图。最后,使用 `setInterval` 方法来定时轮播提示框,其中通过 `dispatchAction` 方法来控制图形的高亮和提示框的显示

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值