SpringBoot学习笔记【part17】集成Echarts统计图表

SpringBoot,ECharts(动态实现) SpringBoot项目对数据进行可视化(动态实现) 效果展示 这里用到Echarts图,可以借鉴https://echarts.apache.org/examples/zh/index.html Apache官网 首先要创建SpringBoot-mybatis项目,导入依赖,写application.yml,写mapper从数据库查询数据 大致结构 ... 阅读详情

一、Echarts 简介

ECharts 是用于图表展示,提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。

官方网站:https://echarts.apache.org/zh/index.html


二、Echarts快速入门

第一步,新建一个 html 文件,引入官网下载的 echarts.min.js 。

<script src="echarts.min.js"></script>

第二步,为ECharts准备一个具备大小(宽高)的Dom 。

<div id="main" style="width: 1200px;height:800px;"></div>

第三步,编写 javascript 渲染图表,以折线图为例。其中关键步骤为首尾两步,echarts.init 方法创建图表对象 、 mychart.setOption 方法配置图表参数。

<script>
  //1.基于准备好的dom,初始化echarts实例
  var myChart = echarts.init(document.getElementById('main'))
  //2.从官网复制下来符合自己场景的图表配置项,并配置其数据
  option = {
    title: {
      text: 'echarts图表快速入门'
    },
    tooltip: {
      trigger: 'axis'
    },
    legend: {
      data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
    },
    grid: {
      left: '3%',
      right: '4%',
      bottom: '3%',
      containLabel: true
    },
    toolbox: {
      feature: {
        saveAsImage: {}
      }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [
      {
        name: 'Email',
        type: 'line',
        stack: 'Total',
        data: [120, 132, 101, 134, 90, 230, 210]
      },
      {
        name: 'Union Ads',
        type: 'line',
        stack: 'Total',
        data: [220, 182, 191, 234, 290, 330, 310]
      },
      {
        name: 'Video Ads',
        type: 'line',
        stack: 'Total',
        data: [150, 232, 201, 154, 190, 330, 410]
      },
      {
        name: 'Direct',
        type: 'line',
        stack: 'Total',
        data: [320, 332, 301, 334, 390, 330, 320]
      },
      {
        name: 'Search Engine',
        type: 'line',
        stack: 'Total',
        data: [820, 932, 901, 934, 1290, 1330, 1320]
      }
    ]
  };
  //3.填充表参数
  myChart.setOption(option)
</script>

第四步,open with live server (运行html)进行测试。

在这里插入图片描述

完整html代码结构如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
  <div id="main" style="width: 1200px;height:800px;"></div>
    
</body>
<script src="echarts.min.js"></script>
<script>
  //1.基于准备好的dom,初始化echarts实例
  var myChart = echarts.init(document.getElementById('main'))
  //2.从官网复制下来符合自己场景的图表配置项,并配置其数据
  option = {
    title: {
      text: 'echarts图表快速入门'
    },
    tooltip: {
      trigger: 'axis'
    },
    legend: {
      data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
    },
    grid: {
      left: '3%',
      right: '4%',
      bottom: '3%',
      containLabel: true
    },
    toolbox: {
      feature: {
        saveAsImage: {}
      }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [
      {
        name: 'Email',
        type: 'line',
        stack: 'Total',
        data: [120, 132, 101, 134, 90, 230, 210]
      },
      {
        name: 'Union Ads',
        type: 'line',
        stack: 'Total',
        data: [220, 182, 191, 234, 290, 330, 310]
      },
      {
        name: 'Video Ads',
        type: 'line',
        stack: 'Total',
        data: [150, 232, 201, 154, 190, 330, 410]
      },
      {
        name: 'Direct',
        type: 'line',
        stack: 'Total',
        data: [320, 332, 301, 334, 390, 330, 320]
      },
      {
        name: 'Search Engine',
        type: 'line',
        stack: 'Total',
        data: [820, 932, 901, 934, 1290, 1330, 1320]
      }
    ]
  };
  //3.填充表参数
  myChart.setOption(option)
</script>

</html>

三、SpringBoot中集成Echarts

第一步,执行 npm install --save echarts 在项目中下载 Echarts 的相关依赖。

第二步,编写请求后端接口的 js 接口代码:

  //获取统计图表测试数据
  getCountMap() {
    return request({
        url: `/admin/statistics/testCountMap`,
        method: 'get',
    })
}

第三步,配置 router 路由后添加新的组件testChart.vue:

<template>
  <div class="app-container">
  
  	<!-- 图表容器 -->
    <div class="chart-container">
        <div id="chart" ref="chart" 
            class="chart" style="height:500px;width:100%"/>
    </div>
    
  </div>
</template> 

第四步,编写 javascript ,引入 echarts 包以及后端接口,调用后端请求图表数据。

<script>
import echarts from 'echarts'
import statisticsApi from '@/api/statistics'

export default {

  data() {
      return {
          chart: null,
          title: '',
          xData: [], // x轴数据
          yData: [] // y轴数据
      }
  },
  created () {
    this.showChart()
  }, 
  methods: {
      //1.初始化图表数据
      showChart() {
          statisticsApi.testCountMap()
            .then(response => {
                this.xData = response.data.xData
                this.yData = response.data.yData
                this.setChartData()
          })
      },
      //2.设置图表数据
      setChartData() {
          //2.1基于准备好的dom,初始化echarts实例
          var myChart = echarts.init(document.getElementById('chart'))
          //2.2指定图表的配置项和数据
          var option = {
              title: {
                  text: this.title + '测试图表统计'
              },
              legend: {
                  data: [this.title]
              },
              xAxis: {
                  data: this.xData
              },
              yAxis: {
                  minInterval: 1
              },
              series: [{
                  name: this.title,
                  type: 'line',
                  data: this.yData,
                  showBackground: true,
                  backgroundStyle: {
                    color: 'rgba(180, 180, 180, 0.2)'
                  }
              }]
          }
          //2.3使用刚指定的配置项和数据显示图表
          myChart.setOption(option)
      },
  }
}
</script>

第五步,编写后端接口,直接使用测试数据。

@RestController
@RequestMapping("/admin/statistics")
public class StatisticsController {

    @GetMapping("testCountMap")
    public Result testCountMap(){
        List<String> xList = Arrays.asList("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
        List<Integer> yList = Arrays.asList(120, 200, 150, 80, 70, 110, 130);
        Map<String ,Object> map = new HashMap<>();
        map.put("xData",xList);
        map.put("yData",yList);
        return Result.ok(map);
    }

}

第六步,启动服务器测试。
在这里插入图片描述

利用Echarts+Springboot实现数据可视化 数据可视化 Spring实现简单的数据可视化 自定义可视化图表 最近老师在带做大数据项目,先做了个数据可视化。 简单来说就是: 利用Echarts+Springboot实现数据可视化 Echarts:调用Echarts.js的API实现图标数据展示 (echarts网址) https://echarts.apache.org/zh/index.html Springboot:编写接口访问 (目录结构如下) pom文件: <?xml version="1.0" encoding="UTF-8"?> <p......... 阅读详情

相关推荐

Springboot+Echarts实现数据可视化项目

首先,得明白 springboot 需要写什么内容?先理解下 MVC 模式!

小白兔奶糖の博客 1645

SpringBoot框架之SpringBoot+Echarts使用案例入门

为能够正确运行本次案例,希望大家认真看,首次学习务必按照本次教程的包名跟类名一样,防止出现不必要的bug哈!!! 一、基础需要: Springboot基础知识 javaWeb基础知识 Springboot创建Web基础 二、下载echarts 1.在Github下载echarts所需的js文件:https://github.com/apache/echarts/tree/5.1.2 2.如图进入下载好后,进入dis...

guihua55的博客 7035

基于SpringBoot+Vue的敬老院管理系统设计与实现解析

前后端分离架构是现代Web开发的主流模式,SpringBoot作为后端框架以其自动配置和快速部署特性简化了服务端搭建,Vue则通过组件化开发提升了前端交互体验。在业务系统开发中,权限管理(如RBAC模型)保障数据安全,数据看板直观呈现运营指标,这些技术点共同构成了企业级应用的基础能力。敬老院等养老机构的管理场景,恰好需要覆盖老人信息、健康档案、护工排班、费用结算等复杂流程,适合作为毕业设计项目。本文从项目定位、数据库设计到核心模块实现,系统拆解如何用SpringBoot+Vue打造一个功能完整、层次清晰的敬

weixin_33985507的博客 380

SpringBoot简单使用Echarts

打开BootCDN,搜索echartsECharts是一个使用JavaScript 实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。选择5.1.0版本,复制script标签2、返回官网,选择示例3、左侧选择饼图4、选择基础南丁格尔玫瑰图5、拷贝左侧的js样式option = {legend: {

weixin_51459046的博客 1686

基于Hadoop的电影推荐系统设计与实现:从爬虫到SpringBoot全栈实践

在大数据时代,如何从海量用户行为数据中挖掘兴趣偏好,是推荐系统落地的核心挑战。Hadoop作为分布式存储与离线计算的基石,配合MapReduce批处理框架,可实现大规模数据的清洗、统计与相似度计算,为协同过滤算法提供高效支撑。同时,SpringBoot作为服务端框架,能将离线计算结果封装为REST接口,快速构建可交互的推荐应用。电影推荐正是这一技术栈的典型场景:通过爬虫采集电影与评分数据,利用HDFS存储原始数据,以协同过滤生成个性化推荐列表,最终由SpringBoot对外服务。本文围绕这一完整链路,梳理各

weixin_29717341的博客 300

基于SpringBoot和Vue的邮件过滤管理系统设计与实现

企业邮件量持续增长,如何高效处理垃圾邮件、实现精准分类与归档,已成为系统运维的常见挑战。邮件过滤本质上是“条件判断+动作执行”,通过配置发件人黑白名单、主题关键词、附件类型等条件,结合规则的组合逻辑,能够实现对邮件的自动拦截、放行、标记或归档。SpringBoot的starter-mail封装了邮件收发细节,配合策略模式实现可扩展的规则引擎,Vue则提供灵活的动态表单与可视化交互,前后端分离架构让系统易于部署和维护。这类能力可广泛应用于企业通知管理、订阅邮件分类、安全审计等场景,帮助管理员从繁重的邮件处理中

weixin_28340315的博客 272

SpringBoot+Vue构建论文管理平台的技术实践

现代Web应用开发中,前后端分离架构已成为主流技术范式。SpringBoot作为Java生态的轻量级框架,通过自动配置和Starter依赖显著简化了后端开发;Vue.js则凭借其响应式系统和组件化架构,成为构建动态前端界面的首选。这种技术组合特别适合需要快速迭代的中小型系统开发,例如论文管理平台这类学术信息化项目。在工程实践中,SpringBoot与Vue的协同工作通过RESTful API实现数据交互,结合MySQL确保数据持久化的可靠性。系统实现的核心技术包括基于JPA的ORM映射、Vue的单文件组件开

weixin_34116110的博客 304

基于Hadoop的NBA球员大数据分析与可视化系统设计实战

大数据技术栈中,Hadoop生态是海量数据存储与离线计算的核心,而SpringBoot与Vue则负责数据服务与可视化呈现。理解从数据采集、清洗、存储到分析、展示的完整链路,是大数据工程实践的关键。本文以NBA球员数据为样例,介绍如何利用HDFS存储多赛季球员统计与薪资数据,通过MapReduce实现得分、篮板、球队对比及薪资关联分析,再借助SpringBoot封装REST接口,最终由Vue+ECharts渲染可视化看板。这一套方案不仅是典型的毕业设计选题,也是理解大数据技术落地的实操路径。文章还总结了环境搭

weixin_28222493的博客 338

SpringBoot+Vue构建售后管理系统的技术实践

现代Web开发中,前后端分离架构已成为主流技术方案,其核心原理是通过RESTful API实现前后端解耦。SpringBoot作为Java生态的微服务框架,配合Vue的响应式前端,能高效构建企业级应用。在数据库优化方面,MySQL的索引设计与查询优化直接影响系统性能,合理使用MyBatis-Plus等ORM工具可提升开发效率。这种技术组合特别适用于工单管理、库存跟踪等业务场景,如本文介绍的售后管理系统,通过Vue Router实现动态路由、SpringBoot集成Redis缓存等技术方案,解决了传统售后流程

weixin_33800463的博客 449

SpringBoot+Vue+MySQL的4S店车辆管理系统全流程实战解析

在当今企业级应用开发中,前后端分离架构已成为主流,SpringBoot凭借自动配置与开箱即用的特性,成为Java后端开发的基石;Vue则以组件化与渐进式设计提升了前端交互效率;MySQL作为关系型数据库,负责业务数据的可靠存储。三者结合,能够快速构建出功能完备的信息管理系统。本文深入剖析4S店车辆管理系统的业务场景,从车辆、客户、销售、售后到权限统计,覆盖全生命周期管理。重点讲解基于JWT的轻量级权限认证、数据库表设计、乐观锁解决并发售卖冲突、ECharts报表可视化等核心实战技术。同时,提供完整的部署流程

weixin_32098457的博客 240

4S店车辆管理系统毕设全解析:SpringBoot+Vue+MySQL从设计到部署

在计算机毕业设计选题中,基于SpringBoot和Vue的管理系统始终是兼具实用性与展示度的经典方向。这类项目以清晰的前后端分离架构为骨架,通过RESTful API完成数据交互,核心在于理解业务状态流转与数据库表关系设计。从车辆入库、销售订单到售后维修,每一条流程都依赖状态机约束与事务一致性,这正是考察开发者工程能力的关键。以4S店车辆管理系统为例,它既包含常规CRUD操作,又涉及权限控制、Excel导出、ECharts可视化等加分功能,非常适合作为全栈开发实践的载体。本文围绕系统模块拆分、MySQL数据

weixin_34162851的博客 271

SpringBoot+Vue家教系统开发:智能匹配与高并发实践

在线教育平台开发中,前后端分离架构已成为主流技术方案。通过SpringBoot构建的RESTful API处理复杂业务逻辑,结合Vue的组件化开发实现高效交互。系统采用多维度加权算法实现智能匹配,利用Redis GEO处理地理位置计算,并通过三级锁机制解决高并发预约问题。在工程实践中,Elasticsearch实现多条件筛选,RabbitMQ处理异步通知,有效提升系统性能。这类双边平台技术方案可广泛应用于家教、技能培训等需要精准匹配的服务领域,其中智能推荐算法和并发控制是保障用户体验的关键技术点。

weixin_30879833的博客 286

SpringBoot+Vue+MySQL构建4S店车辆管理系统:从业务模块到技术实现

在数字化转型浪潮中,企业级应用开发的核心在于将业务流程与信息技术深度融合。SpringBoot作为Java领域的主流框架,以其快速构建、简化配置的特性,成为后端服务开发的利器。其核心原理是基于Spring生态,通过自动配置和起步依赖,大幅提升开发效率,确保系统的稳定与安全。结合Vue.js这一渐进式前端框架,能够构建出交互流畅、用户体验优秀的单页面应用,实现前后端分离的现代化架构。MySQL作为成熟的关系型数据库,则提供了可靠的数据存储与事务支持。这套技术栈的价值在于,它能高效支撑复杂业务逻辑的实现,例如在

weixin_42327217的博客 221

SSM框架开发汽车维修管理系统的核心技术解析

汽车维修管理系统作为汽修行业数字化转型的核心工具,基于SSM(Spring+SpringMVC+MyBatis)框架实现全流程数字化管控。系统采用B/S架构,通过RESTful接口和MySQL数据库优化,解决了维修进度不透明、配件库存混乱等痛点。技术实现上,Spring提供了完善的AOP事务管理能力,MyBatis则通过批量插入和乐观锁机制提升性能。系统还集成了智能工单派发引擎和配件库存预警机制,显著提升了维修厂的运营效率。典型应用场景包括中型维修厂的客户预约、工单派发和财务结算,通过微信端实现维修状态实时

weixin_34037173的博客 393

Hadoop+Spring Boot+爬虫:招聘信息分析系统实战全解析

数据挖掘是发现数据中潜在规律的核心手段,其落地依赖于海量数据的有效存储、清洗与计算。分布式计算框架Hadoop提供了可靠的HDFS存储与MapReduce离线处理能力,而Spring Boot作为成熟的后端服务框架,能够快速构建数据查询与可视化接口。在工程实践中,结合爬虫技术采集半结构化的网络数据,再经过数据清洗、聚类分析和关联规则挖掘,可以形成一条完整的“数据采集→存储计算→服务展示”链路。招聘信息分析正是这类技术架构的典型应用场景:面对岗位数据量大、字段杂、噪声高等挑战,借助Hadoop实现分布式清洗与

weixin_33889665的博客 369

CentOS 7.9安装python3.11

CentOS 7.9安装python3.11

leafseelight的专栏 1342

SpringBoot+Vue全栈电商后台管理系统开发实战

现代电商系统开发中,前后端分离架构已成为主流技术方案。SpringBoot作为Java领域最流行的微服务框架,通过自动配置机制显著提升开发效率;Vue 3则以其响应式特性和组合式API在前端领域占据重要地位。两者结合可构建高性能的RESTful API和动态管理界面。在电商场景下,关键技术挑战包括商品SKU管理、订单状态机设计、分布式锁实现等核心模块。通过整合Redis缓存和MyBatis-Plus ORM框架,能有效应对高并发场景下的库存超卖问题。本系统采用Jenkins实现CI/CD自动化部署,提供完整

weixin_33800463的博客 409

Canoe主要功能的详细介绍

CANoe是德国Vetor公司推出的一款用于总线开发的设备,全程为CAN open environment。后来随着总线技术的发展,CANoe不仅限于CAN类型的总线开发,还包含LIN、FlexRay、MOST和以太网等开发。在车载网络和ECU开发、测试和分析方面,CANoe几乎长期占据着垄断地位,当然是因为其强大的功能性了。目前用这个工具的主要是整车厂和供应商的网络设计工程是、开发工程师和测试工程师。小编当时安装CANoe的时候也是花了一定的时间和精力,好在没有崩溃。

车载测试 3723

基于SpringBoot的毕业设计选题系统:从需求到部署的全栈实战

在高校教学管理与毕业设计流程中,如何高效、公平地协调师生资源、管理选题流程,是一个普遍存在的技术需求。其核心原理在于构建一个基于角色权限的在线协作平台,通过数据库事务与业务逻辑控制,确保流程的规范性与数据的一致性。这类系统的技术价值在于将传统线下、分散的流程数字化与自动化,从而显著提升管理效率、减少人为错误与沟通成本。其典型应用场景包括毕业设计选题、课程设计分组、科研项目申报等需要双向选择与过程管理的领域。本文以毕业设计选题为具体案例,详细阐述了如何利用SpringBoot、MyBatis-Plus与Vue

weixin_30915951的博客 461

告别混乱!在Unity中为Best MQTT v3设计清晰的服务层:配置、连接、订阅发布模块拆分指南

本文详细介绍了如何在Unity中使用Best MQTT v3插件构建清晰的服务层架构,包括配置管理、连接服务、订阅管理和发布服务的模块化拆分。通过解耦设计、事件驱动和接口抽象,提升代码可维护性和可测试性,适用于物联网和实时通信开发场景。

weixin_30576827的博客 358

DSP TMS320C6657中FFT函数的调用与具体使用方法

首先明确一点,C6678中FFT的函数形式为: N : length of FFT in complex samples ptr_x : pointer to complex data input ptr_w : pointer to complex twiddle factor ptr_y : pointer to complex output data brev : pointer to bit reverse table containing 64 entries n_min : should be

Kayboy的博客 3012

【原创唯一】基于微信小程序+uni-app+AI大模型的高校校园报修与后勤工单小程序

本文针对高校后勤报修存在的流程分散、进度不透明等问题,设计并实现了一套智能化校园报修系统。系统采用SpringBoot+Vue3+uni-app技术栈,构建了包含小程序报修-智能派单-维修处理-评价反馈"的全流程闭环。创新性地提出区域优先与负载均衡的智能派单算法,并引入大模型驱动的智能报修助手(支持故障描述自动分类与紧急程度评估)。系统具备SLA超时预警、配件库存管理、工单全生命周期跟踪等特色功能,通过13张数据库表实现多角色协同。

学长源码的博客 221

【软件逆向学习记录】x64dbg调试器入门2:主调试窗口功能及字符串搜索功能介绍

在x64dbg中, ​​CPU视图 是调试过程中最核心的界面,通常被称为​​主调试窗口​​或​​调试视图​​,总体分为四个区域,代码区(反汇编),数据区(内存窗口),寄存器区和堆栈区,详细位置如下图:示例数据代码区最左侧为内存地址,第二块区域为程序代码值,原始程序代码经编译和汇编后变为二进制机器码存储在计算机中,调试器将其展示为易于阅读的十六进制,第三块区域是机器码反汇编后的汇编代码,最右侧为代码的注释窗口,有一些原始的注释,也可以自己添加注释PS:汇编和反汇编解释。

tusikong的博客 2923
上一篇: SpringBoot学习笔记【part16】创建定时任务ScheduledTask
下一篇: SpringBoot学习笔记【part18】拦截器与文件上传
Parker7
博客等级 码龄7年 18粉丝 74原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Parker7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值