ECharts实现简单饼图和柱状图

1.饼图

前端使用vue,后端使用SpringBoot

<template><div><div class="card" style="padding: 15px">数据可视化分析:图书类型销量</div><div style="display: flex; margin: 10px 0"><div style="display: flex; margin: 10px 0"><div style="width: 1200px;height: 600px;" class="card" id="goodsPie"></div></div></div></div>
</template><script>
import * as echarts from "echarts";let pieGoodsOptions = {title: {text: '', // 主标题subtext: '', // 副标题left: 'center'},tooltip: {trigger: 'item',formatter: '{a} <br/>{b} : {c} ({d}%)'},legend: {top: '8%',type: 'scroll',orient: 'vertical',left: 'left',pageIconColor: 'red', // 激活的分页按钮颜色pageIconInactiveColor: 'yellow', // 没激活的分页按钮颜色},series: [{name: '', // 鼠标移上去显示内容type: 'pie',radius: '50%',center: ['50%', '60%'],data: [{value: 0, name: ''}, // 示例数据:name表示维度,value表示对应的值]}]
}export default {name: "Visualization",data() {return {}},created() {this.loadGoodsPie();},methods: {loadGoodsPie(){this.$request.get('/goods/getPie').then(res => {if (res.code === '200') {let chartDom = document.getElementById('goodsPie');let myChart = echarts.init(chartDom);pieGoodsOptions.title.text = res.data.textpieGoodsOptions.title.subtext = res.data.subTextpieGoodsOptions.series[0].name = res.data.namepieGoodsOptions.series[0].data = res.data.datamyChart.setOption(pieGoodsOptions);} else {this.$message.error(res.msg)}})},}
}
</script>
/*** 渲染图书类型销量饼状图*/
@GetMapping("/getPie")
public Result getPie() {Map<String, Object> resultMap = new HashMap<>();List<Map<String, Object>> list = new ArrayList<>();// 获得商品分类名称为key,该分类销量为value的mapList<Goods> goodsList = goodsService.selectAll(new Goods());Map<String, Integer> collect = goodsList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getTypeId())).collect(Collectors.groupingBy(Goods::getTypeName, Collectors.reducing(0, Goods::getCount, Integer::sum)));for (String key : collect.keySet()) {Map<String, Object> map = new HashMap<>();map.put("name", key);map.put("value", collect.get(key));list.add(map);}resultMap.put("text", "图书类型销售量统计饼图");resultMap.put("subText", "统计维度:图书类型");resultMap.put("name", "占比数据");resultMap.put("data", list);return Result.success(resultMap);
}

1.柱状图

前端使用vue,后端使用SpringBoot

<template><div><div class="card" style="padding: 15px">数据可视化分析:店铺销量</div><div style="display: flex; margin: 10px 0"><!-- 后台主页左上部分:公告 --><div style="display: flex; margin: 10px 0"><div style="width: 600px;height: 600px;" class="card" id="businessBar"></div></div></div></div>
</template><script>
import * as echarts from "echarts";let barBusinessOptions = {title: {text: '', // 主标题subtext: '', // 副标题left: 'center'},xAxis: {axisLabel:{interval: 0,//rotate:30,formatter: function (name) {return (name.length > 8 ? (name.slice(0,8)+"...") : name );},},type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] // 示例数据:统计的维度(横坐标)},yAxis: {type: 'value'},tooltip: {trigger: 'item'},series: [{data: [120, 200, 150, 80, 70, 110, 130], // 示例数据:横坐标维度对应的值(纵坐标)type: 'bar',itemStyle: {normal: {color:function(){return "#"+Math.floor(Math.random()*(256*256*256-1)).toString(16);}},},}]
}export default {name: "Visualization2",data() {return {}},created() {this.loadBusinessBar();},methods: {loadBusinessBar(){this.$request.get('/goods/getBar').then(res => {if (res.code === '200') {let chartDom = document.getElementById('businessBar');let myChart = echarts.init(chartDom);barBusinessOptions.title.text = res.data.textbarBusinessOptions.title.subtext = res.data.subTextbarBusinessOptions.xAxis.data = res.data.xAxisbarBusinessOptions.series[0].data = res.data.yAxismyChart.setOption(barBusinessOptions);} else {this.$message.error(res.msg)}})},}
}
</script>
/*** 渲染店铺销量柱状图*/
@GetMapping("/getBar")
public Result getBar() {Map<String, Object> resultMap = new HashMap<>(); // 存取最后返回的数据Map<String, Object> res = new HashMap<>(); // 暂存销量前5的数据List<String> xList = new ArrayList<>(); // 店铺名称List<Integer> yList = new ArrayList<>(); // 店铺总销量// 获得店铺名称为key,该店铺全部销量求和为value的mapList<Goods> goodsList = goodsService.selectAll(new Goods());Map<String, Integer> collect = goodsList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getBusinessId())).collect(Collectors.groupingBy(Goods::getBusinessName, Collectors.reducing(0, Goods::getCount, Integer::sum)));collect.entrySet().stream()// 排序.sorted((p1, p2) -> p2.getValue().compareTo(p1.getValue()))// 截取前limitSize个.limit(5).collect(Collectors.toList()).forEach(ele -> res.put(ele.getKey(), ele.getValue()));for (String key : res.keySet()) {xList.add(key);yList.add((Integer) res.get(key));}resultMap.put("text", "店铺销售量前五统计柱状图");resultMap.put("subText", "统计维度:店铺名称");resultMap.put("xAxis", xList);resultMap.put("yAxis", yList);return Result.success(resultMap);
}

可以点个免费的赞吗!!!   

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

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

相关文章

银行是地球村最大“车主”

有网友调侃说中国的银行已经成了地球村里最大的“房东”&#xff0c;这话的可信度高。可是&#xff0c;中国的银行还渐渐的在成为地球村里最大的“车主”。此言并非耸人听闻&#xff0c;“80多家4s店被查封 银行连夜拖车 网络炸锅”这新闻可佐证。 截图&#xff1a;来源今日国内…

Android分区挂载原理介绍(上)

一、 device-mapper基本原理介绍 1.1 dm工作原理 1.2 dm实现动态卷(逻辑分区)功能介绍(dm-linear) 1.3 dm 实现完整性校验功能介绍(dm-verity) 1.4 元数据加密(default-key) 1.5 dm实现快照功能介绍(snapshot,snapshot-origin,dm-snapshot-…

根据IP查找城市 - 华为OD统一考试

OD统一考试 题解&#xff1a; Java / Python / C 题目描述 某业务需要根据终端的IP地址获取该终端归属的城市&#xff0c;可以根据公开的IP地址池信息查询归属城市。 地址池格式如下&#xff1a; 城市名起始IP&#xff0c;结束IP 起始和结束地址按照英文逗号分隔&#xff0…

python字母异位词分组

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat", &…

非线性最小二乘问题的数值方法 —— 狗腿法 Powell‘s Dog Leg Method (I - 原理与算法)

Title: 非线性最小二乘问题的数值方法 —— 狗腿法 Powell’s Dog Leg Method (I - 原理与算法) 文章目录 I. 前言II. 线搜索类型和信赖域类型1. 线搜索类型 —— 最速下降法2. 信赖域类型3. 柯西点 III. 狗腿法的原理1. 狗腿法的构建2. 狗腿法的优化说明3. 狗腿法的插值权重 I…

Java 全栈知识点问题汇总(上)

Java 全栈知识点问题汇总&#xff08;上&#xff09; 1 Java 基础 1.1 语法基础 面向对象特性&#xff1f;a a b 与 a b 的区别3*0.1 0.3 将会返回什么? true 还是 false?能在 Switch 中使用 String 吗?对equals()和hashCode()的理解?final、finalize 和 finally 的不同…

Git 配置与理解

简述 Git 在 Windows 和 Ubuntu 中的配置&#xff0c;以及对 Git 工作区域划分和 Git 中对于文件状态划分的理解。 git 基础安装与配置 基于 WSL 的 Ubuntu 下的 git 打开或关闭Windows功能 -> Hyper-V、Virtual Machine Platform、Windows Subsystem for Linux # 1.必须…

STM32407用汇顶的GT911触摸芯片调试实盘

这个配置很关键 代码 #include "stm32f4xx.h" #include "GT9147.h" #include "Touch.h" #include "C_Touch_I2C.h" #include "usart.h" #include "delay.h" #include "LCD.h" #incl…

x86 和 x64 arm的区别

x86和x64是基于英特尔x86架构的复杂指令集架构&#xff08;ISA&#xff09;&#xff0c;而ARM是一种精简指令集架构。 什么是指令集架构 假设我们现在要开发一个cpu&#xff0c;就好比说我们去修建一栋楼&#xff0c;开发商会先将图纸设计好。设计好之后由施工单位按照设计图…

openssl3.2 - 官方demo学习 - signature - EVP_DSA_Signature_demo.c

文章目录 openssl3.2 - 官方demo学习 - signature - EVP_DSA_Signature_demo.c概述笔记END openssl3.2 - 官方demo学习 - signature - EVP_DSA_Signature_demo.c 概述 DSA签名(摘要算法SHA256), DSA验签(摘要算法SHA256) 签名 : 用发送者的私钥进行签名. 验签 : 用发送者的公…

基于SSM的图书馆管理系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的图书馆管理系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Sp…

win系统环境搭建(十四)——Windows系统下使用docker安装mysql8和mysql5.7

windows环境搭建专栏&#x1f517;点击跳转 win系统环境搭建&#xff08;十四&#xff09;——Windows系统下使用docker安装mysql8和mysql5.7 文章目录 win系统环境搭建&#xff08;十四&#xff09;——Windows系统下使用docker安装mysql8和mysql5.7MySQL81.新建文件夹2.创建…

windows开机默认启动某个程序

在Windows操作系统中&#xff0c;你可以通过将程序添加到“启动”文件夹或使用任务计划程序来实现开机自动启动某个程序。以下是两种常见的方法&#xff1a; 方法 1&#xff1a;使用“启动”文件夹 找到启动文件夹 按 Win R 打开运行对话框。输入 shell:startup&#xff0c;然…

Webpack5入门到原理1:前言

为什么需要打包工具&#xff1f; 开发时&#xff0c;我们会使用框架&#xff08;React、Vue&#xff09;&#xff0c;ES6 模块化语法&#xff0c;Less/Sass 等 css 预处理器等语法进行开发。 这样的代码要想在浏览器运行必须经过编译成浏览器能识别的 JS、Css 等语法&#xf…

Golang 中的反射,并用来获取数据类型

Go语言提供了一种机制在运行中获取某个变量的类型&#xff0c;获取或修改变量的值&#xff0c;调用变量的方法。 示例代码如下 1. 使用 x.(type)获取变量类型 package mainimport "strconv" //StrPrint 将几种已知数据类型转化为 string func StrPrint(x interfac…

设计模式篇章(4)——十一种行为型模式

这个设计模式主要思考的是如何分配对象的职责和将对象之间相互协作完成单个对象无法完成的任务&#xff0c;这个与结构型模式有点像&#xff0c;结构型可以理解为静态的组合&#xff0c;例如将不同的组件拼起来成为一个更大的组件&#xff1b;而行为型更是一种动态或者具有某个…

three.js从入门到精通系列教程016 - three.js通过OrbitControls对立方体实现旋转和缩放

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>three.js从入门到精通系列教程016 - three.js通过OrbitControls对立方体实现旋转和缩放</title><script src"ThreeJS/three.js"></script><…

CentOS 7 安装Jdk 配置环境变量

在CentOS 7操作系统中&#xff0c;安装JDK并配置环境变量的具体步骤如下&#xff1a; 第一步、需要检查系统是否自带JDK&#xff0c;并删除已有的JDK。 第二步、下载JDK8或其它版本的安装包&#xff0c;并解压到一个新建的Java目录中。 第三步、配置环境变量。将JAVA_HOME变量设…

EasyRecovery2024免费电脑数据恢复软件下载

easyrecovery是一款功能强大、易于使用的硬盘数据恢复软件。这款软件可以帮助用户非常方便地恢复丢失的数据。软件非常容易使用和高效的数据恢复。感兴趣的朋友们赶快来下载吧。 无论是因为意外删除、格式化、病毒感染、系统崩溃还是其他原因&#xff0c;该软件可以帮助您恢复…

你还在找PDF转Word的工具?一个好软件推荐,赶紧查收!

前言 前段时间朋友跟小白吐槽&#xff1a;为啥PDF文件转Word文档的工具都要收费&#xff1f; 因为他们都收费啊。 小白之前找了很多类似有这种功能的工具&#xff0c;都发现&#xff1a;不但收费&#xff0c;可能还附带全家桶&#xff0c;而且还有……广告&#xff01; 在一次…