基于Springboot实现的Echarts图表

news2024/12/28 14:18:40

概述

ECharts是百度开源的一个前端组件。它是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。 它提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。

详细

详细

一、运行效果

image.png

二、实现过程

①、创建一个基础Spring Boot应用

②、在pom.xml中引入Web应用需要的web模块和模板引擎thymeleaf模块,比如用Thymeleaf的时候:

org.springframework.bootspring-boot-starter-thymeleaforg.springframework.bootspring-boot-starter-web

③、编写一个Controller,将/路径的请求,映射到index.html页面

@Controller
public class HelloController {
 
    @GetMapping("/")
    public String index(ModelMap map) {
        return "index";
    }
 
}

④、在resources/templates目录下创建index.html页面,具体内容如下

let myChart = echarts.init(document.getElementById('main'));
    // 定义图标的配置项
    let option = {
        title: {
            text: 'Spring Boot中使用ECharts'
        },
        tooltip: {},
        // x轴配置
        xAxis: {
            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
        },
        // y轴配置
        yAxis: {},
        series: [{
            // 数据集(也可以从后端的Controller中传入)
            data: [820, 932, 901, 934, 1290, 1330, 1320],
            // 图表类型,这里使用line,为折线图
            type: 'line'
        }]
    };
    myChart.setOption(option);


在页面内容中主要包含三部分:

<head>中通过<script>标签引入ECharts的组件JS,这里使用了bootcss的免费公共cdn。如果用于自己生产环境,不建议使用这类免费CDN的JS或者CSS等静态资源。可以从官网下载所需的静态内容,放到Spring Boot的静态资源位置,或是放到自己公司的静态资源管理的服务器上,实现动静分离。

<body>中定义了一个id为main的<div>标签,这个标签后续将用来渲染EChart组件

最后的一段<script>内容则是具体的EChart图标的展现初始化和配置。具体配置内容可见代码中的注释信息。

最后启动应用,访问localhost:8081,如果上面操作均无差错,那我们就会得到类似下面的折线图:

三、项目结构图

image.png

四、补充

除了已经内置的包含了丰富功能的图表,ECharts 还提供了自定义系列,只需要传入一个renderItem函数,就可以从数据映射到任何你想要的图形,更棒的是这些都还能和已有的交互组件结合使用而不需要操心其它事情。

你可以在下载界面下载包含所有图表的构建文件,如果只是需要其中一两个图表,又嫌包含所有图表的构建文件太大,也可以在在线构建中选择需要的图表类型后自定义构建。

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/962548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

02_nodejs开发环境安装

02 【nodejs开发环境安装】 1.版本介绍 在命令窗口中输入 node -v 可以查看版本0.x 完全不技术 ES64.x 部分支持 ES6 特性5.x 部分支持ES6特性&#xff08;比4.x多些&#xff09;&#xff0c;属于过渡产品&#xff0c;现在来说应该没有什么理由去用这个了6.x 支持98%的 ES6 特…

Matlab图像处理-图像反转

图像反转 图像反转变化实质上是将图像明暗两种灰度进行互补运算后互换处理&#xff0c;理论上是由反比变换所得&#xff0c;其表达式为&#xff1a; sL−1−r 其中L−1为该灰度级中最大灰度值。 在MATLAB中&#xff0c;常使用imadjust()或imco…

12 mysql char/varchar 的数据存储

前言 这里主要是 由于之前的一个 datetime 存储的时间 导致的问题的衍生出来的探究 探究的主要内容为 int 类类型的存储, 浮点类类型的存储, char 类类型的存储, blob 类类型的存储, enum/json/set/bit 类类型的存储 本文主要 的相关内容是 char 类类型的相关数据的存储 …

python常用包/库

目录 NumpypandasMatplotlibSeabornScikit-learnKerasOpenCV Numpy NumPy库是Python中一个广泛使用的数学库&#xff0c;主要用于处理多维数组和矩阵。它提供了许多用于数组操作的功能&#xff0c;包括数组创建、索引、切片、广播、数学运算、统计分析等。NumPy库还提供了许多…

3D点云处理:点云形态学腐蚀运算

文章目录 0. 测试效果1. 基本内容1.1 2D方法对点云进行腐蚀运算1.2 3D方法对点云进行腐蚀运算文章目录:3D视觉个人学习目录微信:dhlddxB站: Non-Stop_目标:去除点云的边缘噪声等;0. 测试效果 红色为腐蚀后的点云;白色为原始点云; 1. 基本内容 点云腐蚀是一种用于处理三维…

2.2 Vector<T> 动态数组(模板语法)

C数据结构与算法 目录 本文前驱课程 1 C自学精简教程 目录(必读) 2 动态数组 Vector&#xff08;难度1&#xff09; 其中&#xff0c;2 是 1 中的一个作业。2 中详细讲解了动态数组实现的基本原理。 本文目标 1 学会写基本的C类模板语法&#xff1b; 2 为以后熟练使用 S…

新功能上线!Salesforce Field Service人工智能创新

Salesforce Field Service是Service Cloud的扩展&#xff0c;可提供员工管理的全面视图。Field Service专为进行现场服务的员工而设计&#xff0c;例如服务技术人员、服务座席、调度员等。随着Salesforce平台上线越来越多的生成式AI新增功能&#xff08;包括Sales Cloud、Marke…

Python学习教程:进程的调度

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 要想多个进程交替运行&#xff0c;操作系统必须对这些进程进行调度&#xff0c; 这个调度也不是随即进行的&#xff0c;而是需要遵循一定的法则&#xff0c;由此就有了进程的调度算法。 python更多源码/资料/解答/教程等 …

练习2:88. 合并两个有序数组

这里写自定义目录标题 题目解体思路代码 题目 给你两个按非递减顺序排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m和 n &#xff0c;分别表示 nums1 和 nums2中的元素数目。 请你合并nums2 到 nums1 中&#xff0c;使合并后的数组同样按非递减顺序排列。 注意&a…

python 笔记(3)——request、爬虫、socket、多线程

目录 1、使用requests发送http请求 1-1&#xff09;发送get请求 1-2&#xff09;发送 post 请求 1-3&#xff09;发送 get 请求下载网络图片 1-4&#xff09;使用 post 上传文件 1-5&#xff09;自动维护 session 的方式 2、使用 os.popen 执行cmd命令 3、基于 beautif…

01_nodejs简介

01 【nodejs简介】 1.前言 Node 的重要性已经不言而喻&#xff0c;很多互联网公司都已经有大量的高性能系统运行在 Node 之上。Node 凭借其单线程、异步等举措实现了极高的性能基准。此外&#xff0c;目前最为流行的 Web 开发模式是前后端分离的形式&#xff0c;即前端开发者…

ArrayList、LinkedList、Collections.singletonList、Arrays.asList与ImmutableList.of

文章目录 ListArrayListLinkedListArrayList与LinkedList的区别快速构建list集合Collections.singletonListArrays.asListImmutableList.of Java集合类型有三种&#xff1a;set(集)、list(列表)和map(映射)&#xff0c;而List集合是很常用的一种集合类型&#xff0c; List 我…

2.3 Vector 动态数组(迭代器)

C数据结构与算法 目录 本文前驱课程 1 C自学精简教程 目录(必读) 2 Vector<T> 动态数组&#xff08;模板语法&#xff09; 本文目标 1 熟悉迭代器设计模式&#xff1b; 2 实现数组的迭代器&#xff1b; 3 基于迭代器的容器遍历&#xff1b; 迭代器语法介绍 对迭…

电影《封神第一部》观后感

本周看了电影《封神第一部》&#xff0c;听说上映的时候&#xff0c;口碑就是非常不错的&#xff0c;算是补档吧&#xff0c;另外看网上的一些评论&#xff0c;也都似乎挺好的&#xff0c;虽然有段时间了&#xff0c;还是决定去看看&#xff0c;其实也是算是逃避新出的电影吧&a…

亚马逊的邮箱可以更改吗,修改亚马逊账户邮箱的方法

亚马逊的邮箱可以更改吗&#xff1f; 可以更改&#xff0c;但更改主户邮箱需要电话对身份进行深度验证。如果需要修改&#xff0c;可以先开case向客服说明情况&#xff0c;然后根据客服的指导步骤来操作即可。 修改亚马逊账户邮箱的方法 1、登录您的账户&#xff1a;打开亚马…

外贸爬虫系统

全球智能搜索 全球智能搜索 支持全球所有国家搜索引擎&#xff0c;及社交平台&#xff0c;精准定位优质的外贸客户&#xff0c;免翻墙 全球任意国家地区实时采集 搜索引擎全网邮箱电话采集 社交平台一键查看采集&#xff08;Facebook,Twitter,Linkedin等&#xff09; 职位…

Android SDK 上手指南||第九章 Manifest文件

第九章 Manifest文件 到目前为止&#xff0c;我们已经熟悉了Android项目中的各个组成部分&#xff0c;包括其资源。在今天的文章中&#xff0c;我们将以项目Manifest文件作为核心内容。 对于一个项目来说&#xff0c;Manifest既可以很简单、也可以很复杂&#xff0c;其具体情…

k8s环境部署配置

目录 一.虚拟机准备 二.基础环境配置&#xff08;各个节点都做&#xff09; 1.IP和hosts解析 2.防火墙和selinux 3.安装基本软件 4.配置时间同步 5.禁用swap分区 6.修改内核参数并重载 7.配置ipvs 三.docker环境&#xff08;各个节点都做&#xff09; 1.配置软件源并…

Sharding-JDBC介绍及分库分表实践

1.1 ShardingSphere简介 最早是当当网内部使用的一款分库分表框架&#xff0c;名字叫Sharding-JDBC&#xff0c;定位为轻量级 Java 框架&#xff0c;在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库&#xff0c;以 jar 包形式提供服务&#xff0c;无需额外部署和依…

【Ant Design】Form.Item创建自定义表单

一、概述 Antd是一个非常强大的UI组件库&#xff0c;里面的Form表单组件也基本能满足我们大多数场景。但是也有需要自定义表单的场景。 Vue2里我们使用v-model&#xff0c;结合子组件的model属性&#xff0c;来实现自定义组件的双向绑定。 Vue3里我们使用v-model&#xff0c;…