tsx81429 发表于 2024-9-7 13:19:12

eCharts图表--(扇形 and 折线)

前端步调:
1.引入需要的文件
2.设置一个有巨细的盒子
3.设置数据,创建一个方法,发送请求(分析需要的数据,统计店铺和用户的总数占比)
4.接收到数据给定义的变量接着
5.初始化就加载图形new echarts.init(document.getElementById('pieBox'))给一个变量
6.最后在myChart.setOption({})中写复制粘贴过来的东西,把定义死的数据用请求接收过来的变量赋值,并更改需要修改的地方
1.扇形


https://img-blog.csdnimg.cn/img_convert/2b5deeb81b29bbf5239cdcb617c7d5c9.png
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <%--引入vue--%>
    <%--引入vue文件:必须先引入vue--%>
    <script src="https://unpkg.com/vue@2/dist/vue.js"></script>
    <%--引入axios文件--%>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <!-- 引入组件库 -->
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
    <script src="/js/qs.min.js"></script>
    <script src="/js/echarts.min.js"></script>
</head>
<body>
<div id="app">
    <div id="pieBox" style="width: 600px; height: 400px;"></div>
</div>
<script>
    let app = new Vue({
      el: "#app",
      data: {
      },
      created() {
            this.showPie()
      },
      methods: {
            showPie() {
                // console.log(111)
                axios.get("/count/lis").then(msg => {
                  //店铺
                  console.log(msg.data.data)
                  var pieData = msg.data.data;
                  var myChart = new echarts.init(document.getElementById('pieBox'));
                  myChart.setOption({
                        title: {
                            text: '用户商家统计对比',
                            subtext: '数量比例',
                            left: 'center'
                        },
                        tooltip: {
                            trigger: 'item'
                        },
                        legend: {
                            orient: 'vertical',
                            left: 'left'
                        },
                        series: [
                            {
                              name: '投票数',
                              type: 'pie',
                              radius: '50%',
                              data: pieData,
                              emphasis: {
                                    itemStyle: {
                                        shadowBlur: 10,
                                        shadowOffsetX: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                                    }
                              }
                            }
                        ]
                  });
                });
            }
      }
    })
</script>

</body>
</html> 后端步调:
首先定义一个vo类,扇形图需要的参数--当作返回(泛型)类型

https://img-blog.csdnimg.cn/img_convert/36a6b3799b1c303180eb3f9d82c5a57e.png
1.mapper、mapper.xml--求出店铺的总数目、用户的总数目
https://img-blog.csdnimg.cn/img_convert/98e20a0174f50e0b1433a2d0fb8806d7.png
2.在impl业务实现层处理业务

https://img-blog.csdnimg.cn/img_convert/efa2c4faef1ba0a5b6c0195a5a93e2e5.png
3.最后在控制层调用接口层方法

https://img-blog.csdnimg.cn/img_convert/059cc87f0a9b61c4ae2856f67594bc63.png
2.折线图


https://img-blog.csdnimg.cn/img_convert/fbef58b99a962bf10a2c9943b5c6d06b.png
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <%--引入vue文件:必须先引入vue--%>
    <script src="https://unpkg.com/vue@2/dist/vue.js"></script>
    <%--引入axios文件--%>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <!-- 引入组件库 -->
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
    <script src="/js/qs.min.js"></script>
    <script src="/js/echarts.min.js"></script>
</head>
<body>
<div id="app">
    <div id="zhuBox" style="width: 800px; height: 400px;"></div>
</div>
<script>
    let app = new Vue({
      el: "#app",
      data: {
      },
      created() {
            this.showZhu()
      },
      methods: {
            //图
            showZhu(){
                axios.get("/count/th").then(msg=>{
                  var zhuData=msg.data.data;
                  var myChart = echarts.init(document.getElementById('zhuBox'));
                  myChart.setOption({
                        title: {
                            text: '店铺收入数量'
                        },
                        tooltip: {},
                        legend: {},
                        xAxis: {
                            data: zhuData.xdata
                        },
                        yAxis: {},
                        series: [
                            {
                              name: '数量',
                              type: 'bar',
                              data: zhuData.ydata
                            }
                        ]
                  });
                });
            },
      }
    })
</script>
</body>
</html> zhuData类

https://img-blog.csdnimg.cn/img_convert/d8bb313223a2213b77c392fb5c314ac3.png
1.mapper、mapper.xml

https://img-blog.csdnimg.cn/img_convert/90b6980c9ff2a5b3955749a9d731533f.png

https://img-blog.csdnimg.cn/img_convert/d317faf3e2bec389f2049c1085fd4801.png
2.impl实现业务层

https://img-blog.csdnimg.cn/img_convert/68923dc7706934108dc58ef0b918399b.png
3.控制层

https://img-blog.csdnimg.cn/img_convert/0400001036457bcdf1f5ed07c0a104b4.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: eCharts图表--(扇形 and 折线)