基于Echarts构建停车场数据可视化大屏

news2024/9/27 5:52:13

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

1.项目背景

2.项目简介

3.项目流程

3.1整体布局

3.2左边布局

3.3中间布局 

3.4右边布局


1.项目背景

        停车场数据可视化大屏是一种用于展示停车场运行数据的可视化工具,它可以帮助停车场管理人员更好地了解停车场的运行情况,以便进行更加有效的管理和优化。随着城市车辆数量的不断增加,停车场管理变得越来越重要,因此停车场数据可视化大屏也成为了一种非常重要的工具。

该实验的研究背景主要包括以下几个方面:

  1. 停车场管理的挑战:随着城市车辆数量的不断增加,停车场的管理变得越来越困难。停车场管理人员需要及时了解停车场的运行数据,以便进行更加有效的管理和优化。

  2. 停车场数据的可视化需求:停车场管理人员需要能够将停车场数据进行可视化展示,以便更好地了解停车场的运行情况。传统的表格和柱状图等方式已经无法满足这种需求,因此需要采用更加直观和生动的可视化方式。

  3. Echarts 的应用:Echarts 是一款基于 JavaScript 的开源可视化工具,它具有灵活、易用、直观等特点,非常适合用于停车场数据可视化大屏的构建。

综上所述,该实验的研究背景主要涉及到停车场管理的挑战、停车场数据的可视化需求以及 Echarts 的应用。

2.项目简介

本次项目是使用Echarts构建大数据招聘岗位信息可视化大屏,使用到的技术为前端三剑客(html、css、javascript)。项目最终效果如下:

3.项目流程

3.1整体布局

        首先我们将大屏划分为6个板块,左上角用折线图表示每日的停车数量;左下角用饼图表示及各小时段停车数占比;中间上部分用仪表盘来展示总停车总数、数量最多的星期、时段、地区等数据;中间下用条形图和环形饼图表示月收入情况和停车高峰区间统计;右上角和左上角图表使用一样,展示的是车位平均使用率情况;右下角用玫瑰图展示一周内的停车数量情况。

整体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>停车场信息可视化大屏</title>
    <link rel="stylesheet" href="main.css">
    <script src="echarts.min.js"></script>
    <script src="jquery-3.6.0.min.js"></script>
    <script src="echarts-wordcloud.min.js"></script>
</head>
<body>
  <div class="title">停车场信息可视化大屏</div>
  <div class="l1" id="l1"></div>
  <div class="l2" id="l2"></div>
  <div class="c1">
    <div class="num"><h1>9281</h1></div>
    <div class="num"><h1>星期六</h1></div>
    <div class="num"><h1>1小时内</h1></div>
    <div class="num"><h1>粤</h1></div>
    <div class="txt"><h2>停车总数</h2></div>
    <div class="txt"><h2>数量最多的星期</h2></div>
    <div class="txt"><h2>数量最多的时段</h2></div>
    <div class="txt"><h2>数量最多的地区</h2></div>
  </div>
    <div class="c2" id="c2" ></div>
    <div class="c3" id="c3" ></div>
    <div class="r1" id="r1"></div>
    <div class="r2" id="r2"></div>

   <script src="ec_l1_data.js"></script>
   <script src="ec_l2_data.js"></script>
   <script src="ec_r1_data.js"></script>
   <script src="ec_r2_data.js"></script>
   <script src="ec_c2_data.js"></script>
   <script src="ec_c3_data.js"></script>
</body>
</html>

整体css样式代码如下:

body{
    margin: 0;
    background-color: #333;
}
.title{
    position: absolute;
    width: 40%;
    height: 10%;
    top: 0;
    left: 30%;
    color: white;
    font-size: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.l1{
    position: absolute;
    width: 30%;
    height: 45%;
    top: 10%;
    left: 0;
    background-color: aquamarine;
}
.l2{
    position: absolute;
    width: 30%;
    height: 45%;
    top: 55%;
    left: 0;
    background-color: blue;
}
.c1{
    position: absolute;
    width: 40%;
    height: 25%;
    top: 10%;
    left: 30%;
    /* background-color: blue; */
}
.num{
    width: 25%;
    float: left;
    display: flex;
    align-items: center;
    justify-content: center;
    color: gold;
    font-size: 16px;
}
.txt{
    width: 25%;
    float: left;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "幼圆";
    color: whitesmoke;
    font-size: 12px;
}
.c2{
    position: absolute;
    width: 20%;
    height: 65%;
    top: 35%;
    left: 30%;
    background-color: green;
}
.c3{
    position: absolute;
    width: 20%;
    height: 65%;
    top: 35%;
    left: 50%;
    background-color: blue;
}
.r1{
    position: absolute;
    width: 30%;
    height: 45%;
    top: 10%;
    right: 0;
    background-color: burlywood;
}
.r2{
    position: absolute;
    width: 30%;
    height: 45%;
    top: 55%;
    right: 0;
    background-color: brown;
}
.tim{
    position: absolute;
    /* width: 30%; */
    height: 10%;
    top: 5%;
    right: 2%;
    /* background-color: blueviolet; */
    font-size: 20px;
    color: whitesmoke;
}

3.2左边布局

左上js图表代码:

var ec_left1 = echarts.init(document.getElementById('l1'),"dark");
var ec_left1_option = {
	//标题样式
	title : {
	    text : "每日停车数量",
	    textStyle : {
	        color : 'white',
	    },
	    left : 'left'
	},
	  color: ['#3398DB','#EE6666'],
	    tooltip: {
	        trigger: 'axis',
	        axisPointer: {            // 坐标轴指示器,坐标轴触发有效
	            type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
	        }
	    },
    xAxis: {
        type: 'category',
		color : 'white',
        data: [1,
			2,
			3,
			4,
			5,
			6,
			7,
			8,
			9,
			10,
			11,
			12,
			13,
			14,
			15,
			16,
			17,
			18,
			19,
			20,
			21,
			22,
			23,
			24,
			25,
			26,
			27,
			28,
			29,
			30,
			31]
    },
    yAxis: [{
        type: 'value',
		color : 'white',
    },
	
],
    series: [
	{
		name: '数量',
		type: 'line',
		yAxisIndex: 0,
		tooltip: {
		  valueFormatter: function (value) {
			return value;
		  }
		},
		data: [283, 275, 371, 413, 290, 271, 349, 273, 249, 322, 379, 255, 322,
			315, 232, 246, 366, 364, 280, 310, 316, 265, 305, 356, 403, 277,
			325, 321, 178, 164, 206]
	  }
	]
};
ec_left1.setOption(ec_left1_option)

左下图js代码:

var ec_left2 = echarts.init(document.getElementById('l2'),"dark");
var ec_left2_option = {
	//标题样式
	title : {
	    text : "各小时段停车数",
	    textStyle : {
	        color : 'white',
	    },
	    left : 'left'
	},
tooltip: {
    trigger: 'item'
  },

  series : [
    {
        name: '数量',
        type: 'pie',
        radius: '55%',
        data:[
            {value:164, name:'11~12小时'},
            {value:717, name:'12小时以上'},
            {value:871, name:'2~3小时'},
            {value:1101, name:'6~20小时'},
            {value:1393, name:'1~2小时'},
            {value:1643, name:'3~5小时'},
            {value:3392, name:'1小时以内'}
        ]
    }
]
};

ec_left2.setOption(ec_left2_option)

3.3中间布局 

条形图js代码:

var ec_main = echarts.init(document.getElementById('c2'), "dark");

var ec_main_option = {
    title: {
        text: '月收入情况'
    },
    tooltip: {},
    xAxis: {
        data: ["1月","2月","3月"]
    },
    yAxis: {},
    series: [{
        name: '收入',
        type: 'bar',
        data: [37635,40026,32922]
    }]

}
ec_main.setOption(ec_main_option);

环形饼图js代码:

var ec_left2 = echarts.init(document.getElementById('c3'),"dark");
var ec_left2_option = {
	//标题样式
	title : {
	    text : "停车高峰区间统计",
	    textStyle : {
	        color : 'white',
	    },
	    left : 'left'
	},
tooltip: {
    trigger: 'item'
  },
//   legend: {
//     top: '5%',
//     left: 'center'
//   },
  series: [
    {
      name: '数量',
      type: 'pie',
      radius: ['40%', '70%'],
      avoidLabelOverlap: false,
      label: {
        show: false,
        position: 'center'
      },
      emphasis: {
        label: {
          show: true,
          fontSize: '40',
          fontWeight: 'bold'
        }
      },
      labelLine: {
        show: false
      },
      data: [
        { value: 1631, name: '(7.0, 8.0]' },
        { value: 1407, name: '(13.0, 17.0]' },
        { value: 1282, name: '(0.0, 3.0]' },
        { value: 1245, name: '(3.0, 7.0]' },
        { value: 1030, name: '(20.0, 23.0]' },
        { value: 1014, name: '(10.0, 13.0]' },
        { value: 1004, name: '(17.0, 20.0]' },
        { value: 668, name: '(8.0, 10.0]' },

      ]
    }
  ]
};

ec_left2.setOption(ec_left2_option)

3.4右边布局

右上图形js代码:

var ec_right1 = echarts.init(document.getElementById('r1'),"dark");
var ec_right1_option = {
	//标题样式
	title : {
	    text : "车位平均使用率",
	    textStyle : {
	        color : 'white',
	    },
	    left : 'left'
	},
	  color: ['#3398DB','#EE6666'],
	    tooltip: {
	        trigger: 'axis',
	        axisPointer: {            // 坐标轴指示器,坐标轴触发有效
	            type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
	        }
	    },
    xAxis: {
        type: 'category',
		color : 'white',
        data: [1,
			2,
			3,
			4,
			5,
			6,
			7,
			8,
			9,
			10,
			11,
			12,
			13,
			14,
			15,
			16,
			17,
			18,
			19,
			20,
			21,
			22,
			23,
			24,
			25,
			26,
			27,
			28,
			29,
			30,
			31]
    },
    yAxis: [{
        type: 'value',
		 color : 'white',
    },

],
    series: [
	{
		name: '使用率',
		type: 'line',
		yAxisIndex: 0,
		tooltip: {
		  valueFormatter: function (value) {
			return value;
		  }
		},
		data: [82.86925795, 82.77090909, 84.3638814 , 76.72639225, 79.25862069,
			88.45756458, 85.96275072, 83.72893773, 84.91164659, 85.08385093,
			74.43271768, 83.99215686, 86.5931677 , 89.62539683, 94.24568966,
			96.10569106, 78.70765027, 82.18681319, 86.47857143, 89.57741935,
			87.13607595, 82.21886792, 75.01967213, 80.14044944, 80.24565757,
			80.31768953, 75.77846154, 74.01246106, 82.41011236, 90.23170732,
			96.44174757]
	  }
]
};
ec_right1.setOption(ec_right1_option)

右下图形js代码:

var ec_right2 = echarts.init(document.getElementById('r2'), "dark");

var ec_right2_option = {
   //标题样式
	title : {
	    text : "一周停车数量",
	    textStyle : {
	        color : 'white',
	    },
	    left : 'left'
	},
tooltip: {
    trigger: 'item'
  },
  series : [
    {
        name: '数量',
        type: 'pie',
        radius: '55%',
        roseType: 'angle',
        data:[
            {value:1111, name:'星期三'},
            {value:1113, name:'星期二'},
            {value:1139, name:'星期一'},
            {value:1172, name:'星期四'},
            {value:1173, name:'星期日'},
            {value:1720, name:'星期五'},
            {value:1853, name:'星期六'},
        ]
    }
]
};

ec_right2.setOption(ec_right2_option);

文末福利

618,清华社 IT BOOK 多得图书活动开始啦!

活动时间为2023年6月7日至6月18日

清华社为您精选多款高分好书,涵盖了 C++、Java、Python、前端、后端、

数据库、算法与机器学习等多个IT开发领域,适合不同层次的读者。

全场5折,扫码领券更有优惠哦!快来京东点击链接 IT BOOK 多得

(IT BOOK 多得)


 参与福利 

  • 抽奖方式:评论区随机抽取5位幸运小伙伴!
  • 参与方式:关注博主、点赞、收藏、评论区评论“人生苦短,拒绝内卷!”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!
  • 幸运小伙伴的奖励:清华大学出版社推出的49编程书任选其一!
  • 活动截止时间:2023-06-16 20:00:00

名单公布时间:2023-06-16 21:00:00    

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

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

相关文章

XSS—存储型xss

xss >跨站脚本攻击>前端代码注入>用户输入的数据会被当做前端代码执行。 原理&#xff1a;使用者提交的XSS代码被存储到服务器上的数据库里或页面或某个上传文件里&#xff0c;导致用户访问页面展示的内容时直接触发xss代码。 输入内容后直接在下方回显&#xff0c;回…

【Python 随练】今天是哪一天?

题目&#xff1a; 输入某年某月某日&#xff0c;判断这一天是这一年的第几天&#xff1f; 简介&#xff1a; 在本篇博客中&#xff0c;我们将使用Python代码解决一个日期相关的问题&#xff1a;如何确定某一天是给定年份的第几天。我们将提供问题的解析&#xff0c;并给出一…

领导看了给你加薪!python +ddt+excel 一招鲜,接口自动化测试轻松搞定,测试报告惊艳四座!

“ 接口自动化测试是指通过编写代码或使用工具&#xff0c;模拟用户发送请求&#xff0c;验证接口是否符合设计规范和功能需求的过程。” 如何用 python ddtexcel 实现接口自动化测试 接口自动化测试可以提高测试效率和质量&#xff0c;节省测试成本和时间&#xff0c;保证测试…

使用PyTorch执行特征提取和微调的迁移学习来进行图像分类

使用PyTorch执行特征提取和微调的迁移学习来进行图像分类 1. 效果图2 项目结构3 什么是迁移学习4 如何使用PyTorch进行迁移学习&#xff1f;5 花朵数据集源码train_feature_extraction.pyfine_tune.pyinference.py 参考 这篇博客将介绍如何使用PyTorch深度学习库执行图像分类的…

U盘重装系统Win10详细步骤和方法

当前超多的用户都在使用Win10系统&#xff0c;有些用户想使用U盘来重装一下Win10系统&#xff0c;但不知道具体怎么操作&#xff0c;其实操作起来难度不会很大&#xff0c;可以按照以下小编给大家分享的U盘重装系统Win10详细步骤和方法&#xff0c;就能轻松顺利完成U盘重装系统…

Jetson TX2 NX的GPIO引脚使用方式

Jetson TX2 NX是一款高性能的嵌入式AI计算平台&#xff0c;其中引脚的设计和使用对于开发人员来说非常重要。在本文中&#xff0c;我们将会介绍Jetson TX2 NX的引脚并说明其功能和使用方式。 官方文档官方文档 引脚概述 Jetson TX2 NX具有许多不同类型的引脚&#xff0c;包…

C++ 类的构造函数和析构函数

目录 类的构造函数和析构函数构造函数声明构造函数定义构造函数使用构造函数默认构造函数 析构函数析构函数的声明析构函数的定义 改进Stock类(加入构造函数和析构函数) 类的构造函数和析构函数 构造函数 常规的初始化语法不适用类的初始化 例如&#xff1a; int a 10;//整…

Deepin20.9 安装Mysql

文章目录 mysql下载查看 mysql 状态卸载卸载mysql&#xff1a;清理残留数据检查是否删除完毕 mysql Deepin 安装 下载 从网上下载 https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb 安装 mysql-apt-config 下载文件名: mysql-apt-config_0.8.23-1_all.deb …

PoseiSwap IDO 即将开启,一览 $POSE 经济模型

以太坊创始人 Vitalik Buterin 曾在今年以太坊黑山大会上&#xff0c;进行了以“以太坊的三个技术挑战&#xff1a;扩容、隐私和用户安全”为主题的演讲&#xff0c;阐明了具有隐私性、可扩展性和安全性的且易访问的区块链生态将是行业发展趋势&#xff0c;或许重复造轮子正在变…

【探索 Kubernetes|作业管理篇 系列 10】Pod 健康检查和恢复机制

前言 大家好&#xff0c;我是秋意零。 上一篇中介绍了&#xff0c;Pod 的服务对象&#xff0c;从而对 Pod 有了更深的理解&#xff1b; 今天的主题是 Pod 健康检查和恢复机制&#xff0c;我们将结束 Pod 的内容。 最近搞了一个扣扣群&#xff0c;旨在技术交流、博客互助&am…

图像中提取文本

将从此图像中提取文本。我使用得是 PyCharm&#xff0c;您随意编辑器或IDE 1、下载所需得库和exe文件&#xff1a; tesseract-ocr 可执行exe文件下载后&#xff0c;安装时无需指定安装目录。 http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3…

代码随想录二刷day25 | 回溯 之 216.组合总和III 17.电话号码的字母组合

216.组合总和III 题目链接 解题思路&#xff1a; 选取过程如图&#xff1a; 图中&#xff0c;可以看出&#xff0c;只有最后取到集合&#xff08;1&#xff0c;3&#xff09;和为4 符合条件。 递归三部曲 确定递归函数参数 和77. 组合 一样&#xff0c;依然需要一维数组path…

走进人工智能|深度学习 算法的创世纪

前言&#xff1a; 深度学习通过训练深层神经网络模型&#xff0c;可以自动学习和提取数据的特征&#xff0c;包括更准确的图像识别、自然语言处理、医学诊断等方面的应用。 文章目录 序言背景算法的创世纪技术支持应用领域程序员如何学总结 序言 深度学习是一种机器学习方法&a…

easyui05(datagrid数据新增)

一.对话框&#xff1a;Dialog 加载页面 <div id"myDialog" style"display:none"></div> 二.editGoods.jsp 表单 myForm <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <tit…

2023年互联网Java面试复习大纲:ZK+Redis+MySQL+Java基础+架构

多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点提问基础知识点考核算法题这个流程下来的。有些公司可能还会问几个实际的场景类的问题&#xff0c;这个环节阿里是必问的&#xff0c;这种问题通常是没有正确答案的&#xff0c;就看个人的理解&#xff0c;个人的积累了…

Vue练手项目之仿京东到家主页

目录 概述1.效果展示2.使用原始HtmlCSS实现3.使用Vue.js进行组件化3.1 Header部分组件实现3.1.1图标的展示3.1.2 定义Vue调试的名称3.1.3 使用scoped隔离组件间的css影响 3.2 附近店铺部分实现3.3 底部导航栏组件的实现3.4 将组件组成一个整体页面 4.代码地址 概述 本人是一个…

【微信小程序开发】第 9 课 - 小程序的协同工作和发布

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、协同工作 1.1、了解权限管理需求 1.2、了解项目成员的组织结构 1.3、小程序的开发流程 2、小程序成员管理 2.1、成员管…

【Unity Shader】Special Effects(八)Wireframe 线框化(UI)

更新日期:2023年6月17日。 Github源码:[点我获取源码] 索引 Wireframe 线框化思路分析Sobel算子片元输入数据结构-定义片元输入数据结构-填充片元输入数据结构-传入属性定义求梯度值方法求边缘方法范围控制线框化渐变动画Wireframe 线框化 线框化效果可以将一张图像根据纹理…

从618「技术暗战」,看乡村振兴的未来「赛点」

作者 | 曾响铃 文 | 响铃说 作为消费复苏后的首个消费节点&#xff0c;从“史上消费者福利最大的618”“史上投入最大的一届618”等口号&#xff0c;都能感觉到这届618的火药味比以往要浓得多。 有业内人士透露&#xff0c;这次的年中大促无论从商品种类、数量还是提供的服务…

【自动化测试】是否有必要做自动化测试?

‍目录 一、前言 二、自动化目的 三、自动化分类 四、自动化实现 一、前言 在一些测试交流群经常会看到有小伙伴在问&#xff0c;"怎么做自动化测试&#xff1f;学习自动化测试有什么资料吗&#xff1f;自动化测试是不是很牛逼&#xff1f;" &#xff0c;甚至有…