echarts图表静态数据 象形柱形图、折线图、日历饼图、饼状图四种实现

标题

页面全部代码 

<template><div class="data-serve"><div class="side"><div class="side-inner"><router-link class="side-btn" to="/camer/pushInfo"><i class="el-icon-picture"></i>报警信息</router-link><router-link style="background: #344886" class="side-btn" to="/camera/live"><i class="el-icon-picture"></i>统计分析</router-link></div></div><div class="main"><div class="chart-side"><div class="chart-wrapper"><div class="chart-bg"><span>报警处理状态</span></div><div class="chart"><div id="pieChart" class="echart-line"></div></div></div><div class="chart-wrapper"><div class="chart-bg"><span>报警类型分析</span></div><div class="chart"><div id="barChart" class="echart-bar" /></div></div></div><div class="chart-side"><div class="chart-wrapper"><div class="chart-bg"><span>日报警分析</span></div><div class="chart"><div id="scatterChart" class="echart-scatter" /></div></div><div class="chart-wrapper"><div class="chart-bg"><span>报警趋势分析</span></div><div class="chart"><div id="lineChart" class="echart-line"></div></div></div></div></div></div>
</template><script>
export default {data() {return {scatterData: null,}},mounted() {let _this = this;this.getPieEcharts(); //饼状图this.getBarEcharts();//柱状图this.getScatterEcharts();//日期饼状图this.getLineEcharts(); //折线图},methods: {//图一饼状图getPieEcharts() {let myChart = this.$echarts.init(document.getElementById("pieChart"));myChart.setOption({tooltip: {trigger: 'item'},series: [{type: 'pie',radius: '60%',center: ['50%', '50%'],// 文字后添加百分比值label: {show: true,formatter(param) {return param.name + ' (' + param.percent + '%)';}},roseType: 'radius',itemStyle: {color: function (params) {let colorList = [{type: 'linear',x: 0,y: 1,x2: 1,y2: 0,colorStops: [{offset: 0,color: '#7a26ee',},{offset: 1,color: '#be7eff',},],global: false,},{type: 'linear',x: 0,y: 1,x2: 1,y2: 0,colorStops: [{offset: 0,color: '#25ebff',},{offset: 1,color: '#23c0e0',},],global: false,},{type: 'linear',x: 1,y: 0,x2: 1,y2: 1,colorStops: [{offset: 0,color: '#1620cd',},{offset: 1,color: '#0d79f9',},],global: false,},{type: 'linear',x: 1,y: 1,x2: 0,y2: 0,colorStops: [{offset: 0,color: '#0d79f9',},{offset: 1,color: '#1cbbff',},],global: false,},];return colorList[params.dataIndex];},},// animationType: 'scale',// animationEasing: 'elasticOut',// animationDelay: function (idx) {//   return Math.random() * 200;// },data: [{ value: 335, name: '已处理', label: { color: "#1cbcff" } },{ value: 310, name: '重复报警', label: { color: "#0b82f9" } },{ value: 274, name: '误报', label: { color: "#28ebff" } },{ value: 235, name: '未处理', label: { color: "#be71ff" } },].sort(function (a, b) {return a.value - b.value;}),}]})window.onresize = myChart.resize;},// 图2柱状图getBarEcharts() {let barChart = this.$echarts.init(document.getElementById("barChart"));barChart.setOption({tooltip: {trigger: 'axis',formatter: function (params) {let result = '';params.forEach(function (item) {console.log(item, 123);if (item.seriesType === 'bar') {  // 如果是柱体,则获取对应的系列名称和值result += item.name + ': ' + item.value + '<br/>';}});return result;},axisPointer: {type: 'shadow',}},grid: {left: '3%',right: '4%',bottom: '5%',containLabel: true},xAxis: [{type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],axisTick: {show: false,},//x轴颜色axisLine: {lineStyle: {color: '#253262',},},//  x轴文字的颜色设置为白色axisLabel: {color: '#fff',margin: 20,},},],yAxis: [{type: 'value',// 不显示y轴的线axisLine: {show: false},// 不显示y轴刻度axisTick: {show: false},// 分割线颜色splitLine: {lineStyle: {color: '#253262',// type: 'dashed' //虚线}},// y轴刻度文字颜色设置为白色axisLabel: {color: "#fff",},}],series: [// 底部的椭圆形(象形柱图):pictorialBar{type: "pictorialBar", // pictorialBar(象形柱图)label: { // 图形上的文本标签,可用于说明图像的一些数据信息,比如值,名称等show: true, //是否显示标签position: ['25', '-30'], // 标签的位置(可以是绝对的像素值或者百分比['50%','50%',也可以是top,left等])color: '#01E4FF',fontSize: 14},symbolSize: [40, 20], // 图形的大小用数组分别比表示宽和高,也乐意设置成10相当于[10,10]symbolOffset: [0, 10], // 图形相对于原本位置的偏移z: 12, // 象形柱状图组件的所有图形的 z 值.控制图形的前后顺序.z 值小的图形会被 z 值大的图形覆盖.itemStyle: { // 图形样式// echarts.graphic.LinearGradient(echarts内置的渐变色生成器)// 4个参数用于配置渐变色的起止位置,这4个参数依次对应右 下 左 上color: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [  // 渐变颜色{offset: 0,color: '#00e3f3',},{offset: 1,color: '#1373bc',},],global: false,},},data: [10, 52, 200, 334, 390, 330, 220]},// 中间的长方形柱状图(柱状图):bar{type: 'bar', // 柱状图barWidth: 40, // 柱条的宽度,不设时自适应barGap: '0%', // 柱子与柱子之间的距离itemStyle: { // 图形样式// color支持(rgb(255,255,255)、rgba(255,255,255,1)、#fff,也支持渐变色和纹理填充)// 下面就是使用线性渐变color: {"x": 0,"y": 0,"x2": 0,"y2": 1,"type": "linear","global": false,"colorStops": [{"offset": 0, // 0%处的颜色"color": "rgba(0,229,255,0.5)"}, {"offset": 1, // 100%处的颜色"color": "#1F9BFF"}]},},data: [10, 52, 200, 334, 390, 330, 220]},// 顶部的椭圆形(象形柱图):pictorialBar{type: "pictorialBar",symbolSize: [40, 20],symbolOffset: [0, -10],z: 12,symbolPosition: "end",itemStyle: {color: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [  // 渐变颜色{offset: 0,color: '#00e3f3',},{offset: 1,color: '#1373bc',},],global: false,},},data: [10, 52, 200, 334, 390, 330, 220]}]})window.addEventListener("resize", function () {// 让我们的图表调用 resize这个方法barChart.resize();})},// 图3图表getScatterEcharts() {this.scatterData = this.$echarts.init(document.getElementById("scatterChart"));let cellSize = [window.innerWidth / 19, window.innerHeight / 17];let pieRadius = window.innerWidth / 80;//饼图数据从后端获取let json = [{ "data": [{ "name": "已完成", "value": 30, itemStyle: { color: '#43d0ff' } }, { "name": "未完成", "value": 10, itemStyle: { color: '#343bee' } }, { "name": "未巡查", "value": 56, itemStyle: { color: '#6a64fd' } }] },{ "data": [{ "name": "已完成", "value": 30, itemStyle: { color: '#43d0ff' } }, { "name": "未完成", "value": 10, itemStyle: { color: '#343bee' } }, { "name": "未巡查", "value": 56, itemStyle: { color: '#6a64fd' } }] },{ "data": [{ "name": "已完成", "value": 30, itemStyle: { color: '#43d0ff' } }, { "name": "未完成", "value": 10, itemStyle: { color: '#343bee' } }, { "name": "未巡查", "value": 56, itemStyle: { color: '#6a64fd' } }] },{ "data": [{ "name": "已完成", "value": 30, itemStyle: { color: '#43d0ff' } }, { "name": "未完成", "value": 10, itemStyle: { color: '#343bee' } }, { "name": "未巡查", "value": 56, itemStyle: { color: '#6a64fd' } }] },{ "data": [{ "name": "已完成", "value": 30, itemStyle: { color: '#43d0ff' } }, { "name": "未完成", "value": 10, itemStyle: { color: '#343bee' } }, { "name": "未巡查", "value": 56, itemStyle: { color: '#6a64fd' } }] },{ "data": [{ "name": "已完成", "value": 30, itemStyle: { color: '#43d0ff' } }, { "name": "未完成", "value": 10, itemStyle: { color: '#343bee' } }, { "name": "未巡查", "value": 56, itemStyle: { color: '#6a64fd' } }] },]let startDate = '2017-05';   //开始值从后端获取let endDate = '2017-06';   //结束值从后端获取// let data_name = ['已完成', '未完成', '未巡查'];//该出应该是从数据库中读取data_namelet options = this.calendar(cellSize, pieRadius, startDate, endDate, json);options && this.scatterData.setOption(options)},calendar(cellSize, pieRadius, startDate, endDate, json, data_name) {let data_arr = [];let _this = this;for (let i = 0; i < json.length; i++) {data_arr.push(json[i].data);}function getVirtulData() {let date = +(_this.$echarts.number.parseDate(startDate));let end = +(_this.$echarts.number.parseDate(endDate));let dayTime = 3600 * 24 * 1000;let data = [];for (let time = date; time < end; time += dayTime) {data.push([_this.$echarts.format.formatTime('yyyy-MM-dd', time),Math.floor(Math.random() * 10000)]);}return data;}function getPieSeries(scatterData, chart) {return _this.$echarts.util.map(scatterData, function (item, index) {let center = chart.convertToPixel('calendar', item);return {id: index + 'pie',type: 'pie',center: center,label: {normal: {formatter: '{c}',position: 'inside'}},radius: pieRadius,data: data_arr[index]};});}// 使用刚指定的配置项和数据显示图表。function getPieSeriesUpdate(scatterData, chart) {return _this.$echarts.util.map(scatterData, function (item, index) {let center = chart.convertToPixel('calendar', item);return {id: index + 'pie',center: center};});}let scatterData = getVirtulData();let option = {tooltip: {},// legend: {//   data: data_name,//   bottom: 20// },calendar: {top: '38', //图表位置left: 'center', //横向orient: 'vertical',cellSize: cellSize,  //尺寸yearLabel: {show: false,textStyle: {fontSize: 30},},itemStyle: {borderColor: '#3f58a3',  // 边框颜色borderWidth: 1,       // 边框宽度color: '#192143'},// //星期表头位置,颜色dayLabel: {margin: 10,firstDay: 1,nameMap: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],color: '#fff',},//左侧月份隐藏monthLabel: {show: false,},range: [startDate], // 后端获取起始范围},series: [{id: 'label',type: 'scatter',coordinateSystem: 'calendar',  //指定饼图所使用的坐标系为日历坐标系。在日历坐标系中,每个日期对应图表中的一个格子symbolSize: 1,label: {normal: {show: true,// 使用时间格式化函数将日期显示为天数formatter: function (params) {return _this.$echarts.format.formatTime('dd', params.value[0]);},offset: [-cellSize[0] / 2 + 10, -cellSize[1] / 2 + 10],// 标签位置的偏移量textStyle: {color: '#fff',fontSize: 14},},},data: scatterData // 天数}]};// 监听窗口大小变化事件window.addEventListener("resize", () => {cellSize = [window.innerWidth / 19, window.innerHeight / 17];pieRadius = window.innerWidth / 80;this.scatterData.setOption(this.calendar(cellSize, pieRadius, startDate, endDate, json, data_name));this.scatterData.resize();});if (!_this.scatterData.inNode) {let pieInitialized;setTimeout(function () {pieInitialized = true;// 初始化饼图的系列_this.scatterData.setOption({series: getPieSeries(scatterData, _this.scatterData)});}, 10);}return option;},// 图4折线图getLineEcharts() {let lineChart = this.$echarts.init(document.getElementById("lineChart"));lineChart.setOption({tooltip: {trigger: 'axis',axisPointer: {type: 'shadow',}},xAxis: {type: 'category',boundaryGap: false,axisTick: {show: false,},//x轴颜色axisLine: {lineStyle: {color: '#253262',},},//  x轴文字的颜色设置为白色axisLabel: {color: '#fff'},data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value',// 不显示y轴的线axisLine: {show: false},// 不显示y轴刻度axisTick: {show: false},// 分割线颜色splitLine: {lineStyle: {color: '#253262',// type: 'dashed' //虚线}},// y轴刻度文字颜色设置为白色axisLabel: {color: "#fff",},},series: [{data: [820, 932, 901, 934, 1290, 1330, 1320],type: 'line',color: '#3384f3',areaStyle: {color: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [  // 渐变颜色{offset: 0,color: '#213f79',},{offset: 1,color: '#192143',},],global: false,},}}]})window.addEventListener("resize", function () {// 让我们的图表调用 resize这个方法lineChart.resize();})},}
}
</script>
<style lang="scss" scoped>
.data-serve {width: 100%;height: 100%;display: flex;padding: 30px 10px 0 10px;.side {width: 240px;box-sizing: border-box;height: 100%;padding-left: 20px;.side-inner {width: 100%;height: 100%;box-shadow: 0 0 5px rgba(20, 120, 210, 0.6) inset;border: 1px solid #0070da;padding: 10px 20px 20px 20px;.side-btn {width: 100%;display: block;color: #fff;font-size: 12px;margin-top: 10px;padding: 8px 10px 8px 20px;letter-spacing: 3px;background-image: linear-gradient(to right, #3e4e72, transparent);i {margin-right: 10px;}}}}.main {width: calc(100% - 240px);height: 100%;padding: 0 20px;.chart-side {display: flex;width: 100%;height: calc(100% / 2 - 10px);justify-content: space-between;margin-top: 10px;.chart-wrapper {width: calc(100% / 2 - 5px);height: 100%;.chart-bg {width: 100%;height: 30px;line-height: 30px;padding-left: 20px;font-size: 14px;background-image: linear-gradient(to right, rgba(31, 42, 79, 0.9), rgba(255, 0, 0, 0));color: #fff;span {border-left: 4px solid #6fb3e8;padding-left: 10px;}}.chart {width: 100%;height: calc(100% - 40px);background-color: #192143;margin-top: 10px;.pieChart,.echart-line,.echart-scatter,.echart-bar {width: 100%;height: 100%;}}}}}
}
</style>

 

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

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

相关文章

51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 电位器AD实验

一、直接上代码 /************************************************************************************** * 电位器AD实验 * 实现现象&#xff1a;下载程序后数码管后4位显示电位器检测的AD值&#xff0c;范围是0-4095&#xff0c;一般达不到最…

使用wkhtmltoimage实现生成长图分享

需求 用户可以选择以长图的形式分享本网页 方法 wkhtmltopdf wkhtmltopdf url filewkhtmltoimage url file java Runtime.getRuntime().exec() 下载 直接去官网下载对应的版本&#xff1a;官网 命令行使用WK > wkhtmltopdf https://www.nowcoder.com /opt/project/…

ExpressLRS开源代码之工程结构

ExpressLRS开源代码之工程结构 1. 源由2. 工程3. 开发环境安装4. pio命令5. ExpressLRS配置6. 硬件认证过程7. 参考资料 1. 源由 ExpressLRS开源代码基于Arduino框架设计&#xff0c;在所支持的硬件环境下&#xff0c;提供900/2400发射机和接收机硬件方案。 该设计提供了一个…

docker 安装xxljob

1. 安装mysql镜像 2.初始化xxljob的数据库和表 一、初始化db:https://codechina.csdn.net/mirrors/xuxueli/xxl-job/-/blob/2.3.1/doc/db/tables_xxl_job.sql 对脚本进行修改&#xff0c;添加ROW_FORMATDYNAMIC 安装xxljob 镜像 docker pull xuxueli/xxl-job-admin:2.3.1 …

警告:Provides transitive vulnerable dependency maven:org.yaml:snakeyaml:1.30

1. 警告 SpringBoot 的 validation 依赖包含有易受攻击的依赖 snakeyaml。 警告信息如下&#xff1a; Provides transitive vulnerable dependency maven:org.yaml:snakeyaml:1.30 意思是&#xff1a;提供了可传递的易受攻击依赖 maven:org.yaml:snakeyaml:1.30 2. 警告示例 …

盖子的c++小课堂——第二十二讲:2维dp

前言 大家好&#xff0c;我又来更新了&#xff0c;今天终于有时间了aaaaaaaa 破500粉了&#xff0c;我太高兴了哈哈哈哈哈哈&#xff08;别看IP地址&#xff0c;我去北京旅游回来了&#xff0c;他没改回来&#xff09;&#xff0c;然后我马上就成为创作者一年了&#xff0c;希…

基于Java+SpringBoot+Vue前后端分离农商对接系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

Android样本Repack重打包检测思路

1. 什么是Android样本重打包&#xff0c;为什么要检测重打包 &#xff08;1&#xff09;apk是zip&#xff0c;很容易做repack &#xff08;2&#xff09;repack后&#xff0c;被抄袭&#xff0c;redirect ad&#xff0c;或者插入malicious payloads &#xff08;3&#xff09;…

传输层—TCP原理详解

目录 前言 1.TCP协议 2.TCP协议段格式 3.如何解包如何分用 4.网络协议栈和文件的关系 5.如何理解TCP报头 6.TCP的特点 7.TCP字段 7.1 16位窗口大小 7.2标志位 8.超时重传 9.连接管理机制 10.滑动窗口 11.拥塞控制 12.延迟应答 13.捎带应答 14.理解TCP的面向字…

使用LightPicture开源搭建私人图床:详细教程及远程访问配置方法

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进&#xff0c;功能也越来越多&#xff0c;而手机…

计算机网络-谢希任第八版学习笔记总结

一.计算机网络概述 21世纪三个特点 数字化 信息化 智能化&#xff0c;其中主要是围绕智能化。 网络的常见分类&#xff1a; 电话网络 有线电视网络 计算机网络 互联网&#xff1a;Internet 由数量极大的计算机网络相连接 特点&#xff1a; 共享性 连通性 互联网&…

【python爬虫】中央气象局预报—静态网页图像爬取练习

静态网页爬取练习 中央气象局预报简介前期准备步骤Python爬取每日预报结果—以降水为例 中央气象局预报简介 中央气象台是中国气象局&#xff08;中央气象台&#xff09;发布的七天降水预报页面。这个页面提供了未来一周内各地区的降水预报情况&#xff0c;帮助人们了解即将到来…

项目介绍:《Online ChatRoom》网页聊天室 — Spring Boot、MyBatis、MySQL和WebSocket的奇妙融合

在当今数字化社会&#xff0c;即时通讯已成为人们生活中不可或缺的一部分。为了满足这一需求&#xff0c;我开发了一个名为"WeTalk"的聊天室项目&#xff0c;该项目基于Spring Boot、MyBatis、MySQL和WebSocket技术&#xff0c;为用户提供了一个实时交流的平台。在本…

神经网络与卷积神经网络

全连接神经网络 概念及应用场景 全连接神经网络是一种深度学习模型&#xff0c;也被称为多层感知机&#xff08;MLP&#xff09;。它由多个神经元组成的层级结构&#xff0c;每个神经元都与前一层的所有神经元相连&#xff0c;它们之间的连接权重是可训练的。每个神经元都计算…

机器连接和边缘计算

以一种高效、可扩展的方式进行连接和边缘计算的结合&#xff0c;解决了在工业物联网应用中的机器数据集成问题。 一 边缘计算 边缘计算描述了由中央平台管理的数据分散式处理&#xff0c;它对于工业物联网而言非常重要。在许多应用程序中&#xff0c;由于数据量非常大&#xf…

用ChatGPT做一个Chrome扩展 | 京东云技术团队

用ChatGPT做了个Chrome Extension 最近科技圈儿最火的话题莫过于ChatGPT了。 最近又发布了GPT-4&#xff0c;发布会上的Demo着实吸睛。 笔记本上手画个网页原型&#xff0c;直接生成网页。网友直呼&#xff1a;前端失业了&#xff01; 但我觉着啊&#xff0c;真就外行看热闹…

docker-compose 部署nacos 整合 postgresql 为DB

标题docker-compose 部署nacos 整合 postgresql 为DB 前提&#xff1a; 已经安装好postgresql数据库 先创建好一个数据库 nacos&#xff0c;执行以下sql: /** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the "…

说说redo log 与 undo log

redo log redo log叫做重做日志.用于解决数据库事物提交 还未刷入磁盘,服务器down机导致的数据丢失的问题。 InnoDB作为MySQL的存储引擎&#xff0c;数据存储在磁盘中&#xff0c;如果每次读写数据都要操作磁盘IO效率会很低&#xff0c;为此InnoDB提供了缓存(Buffer Pool)&am…

白鲸开源 DataOps 平台加速数据分析和大模型构建

作者 | 李晨 编辑 | Debra Chen 数据准备对于推动有效的自助式分析和数据科学实践至关重要。如今&#xff0c;企业大都知道基于数据的决策是成功数字化转型的关键&#xff0c;但要做出有效的决策&#xff0c;只有可信的数据才能提供帮助&#xff0c;随着数据量和数据源的多样…

阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境

一、 安装宝塔面板 官网 https://www.bt.cn/new/download.htm 题外话&#xff1a;虽然感觉现在宝塔没以前好用了&#xff0c;而且有centos7、8 mysql编译导致OOM服务器挂掉无法ssh登录的情况&#xff0c;但他还是远程管理服务器的好选择&#xff0c;提示宝塔只支持最新的centos…