# 西宁市公交可视化界面 **Repository Path**: Su_Menghui/Bus-visualization ## Basic Information - **Project Name**: 西宁市公交可视化界面 - **Description**: 此项目基于pyechart框架,通过post请求来获取西宁公交部分数据来制作可视化大屏项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-12-01 - **Last Updated**: 2024-02-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: 可视化, Python ## README # 西宁公交可视化平台 ### 🚀系统介绍 此项目是一项基于Python语言及pyecharts框架开发的青海省西宁市市区公交的可视化大屏项目。 **系统演示图:** ![](readme.assets/image-20231224115147304.png "fig:") ### 🌟功能介绍 #### 1.站点服务路线统计图 此柱状图用于统计西宁市各个站点各有多少车辆线路,并进行降序排序,下面的滑动窗口可以滑动选择区间(如火车站有18辆公交线路) ![](readme.assets/image-20231224121144174.png "fig:") #### 2.公交站点涟漪散点地图 此地图基于百度api,用于此项目的背景,占满整个屏幕,地图中显示了西宁市区中所有的站点并用涟漪散点图进行展示 ![](readme.assets/image-20231224121843014.png "fig:") #### 3.公交停靠站点渐变柱状图 此柱状图用于显示公交停靠站点的排行(如107路公交停靠站点为41站,位居西宁市第一) ![](readme.assets/image-20231224121910283.png "fig:") #### 4.公交价格饼图 此饼图用于显示西宁市公交1元价格和2元价格的比例,例如1元车价的公交车在西宁市区占比90.8% ![](readme.assets/image-20231224123400232.png "fig:") #### 5.西宁市气温曲线图 此曲线图用于显示西宁市整体气温和城北区气温 ![](readme.assets/image-20231224123902502.png "fig:") #### 6.今日公交调度车辆柱状图 此柱状图用于显示今日各路车辆的调度车辆数量(如31路此时在运行的车辆一共有19辆) ![](readme.assets/image-20231224124032437.png "fig:") #### 7.今日公交调度率仪表图 此仪表盘图用于显示今日调度车辆和西宁市总公交车辆的比率(今日公交调度车辆一共919辆,调度率为53%) ![](readme.assets/image-20231224124358531.png "fig:") #### 8.空气质量雷达图 此雷达图用于显示西宁市的空气质量,数据来源分别为青海师大监测站和西宁世纪职校监测站 ![](readme.assets/image-20231224124509353.png "fig:") ### 🎉项目依赖 #### **环境依赖** Python==3.12 MYSQL==8.0.28 #### **Python依赖** ``` beautifulsoup4==4.12.2 bs4==0.0.1 certifi==2023.11.17 charset-normalizer==3.3.2 contourpy==1.2.0 cycler==0.12.1 fonttools==4.47.0 greenlet==3.0.2 idna==3.6 Jinja2==3.1.2 kiwisolver==1.4.5 lxml==4.9.3 MarkupSafe==2.1.3 matplotlib==3.8.2 mysql==0.0.3 mysql-connector==2.2.9 mysql-connector-python==8.2.0 mysqlclient==2.2.1 numpy==1.26.2 packaging==23.2 page==0.2 pandas==2.1.4 Pillow==10.1.0 prettytable==3.9.0 protobuf==4.21.12 pyecharts==2.0.4 PyMySQL==1.1.0 pyparsing==3.1.1 python-dateutil==2.8.2 pytz==2023.3.post1 requests==2.31.0 scipy==1.11.4 seaborn==0.13.0 simplejson==3.19.2 six==1.16.0 soupsieve==2.5 SQLAlchemy==2.0.23 typing_extensions==4.9.0 tzdata==2023.3 urllib3==2.1.0 wcwidth==0.2.12 ``` ### 💡项目亮点 此项目最终展示结果为pyechart的page()方法和自己设置的chart_config.json文件自行生成好HTML文件,所以在开发过程中并没有用到前端代码。此外,项目的公交数据爬取功能将爬好的数据存到mysql数据库当中,而页面生成只需要访问数据库并且读取相应的数据即可,每当用户访问网站时,不会开启数据库事务,理论上在访问一个静态页面。例如:我们4小时爬取一次公交数据,2小时爬取一次天气数据及空气质量数据。pyechart的page()方法只需要2小时更新一次。一天无论访问量为多少,爬取公交数据的总数也不过6次,爬取气数据及空气质量数据不过12次,大大减少了公交系统及其他服务器的负担 ### ❤️运行教程 1.运行**bus_view.sql**脚本,创建数据库 2.运行**db/bus_db.py**文件,此时会通过db/busDictionary.py字典进行爬取相对应公交数据 3.运行"**db/坐标json序列化工具.py**"文件,此文件会将爬取好的站点数据进行json格式化,用于绘制涟漪散点图及修改源码(将venv/Lib/site-packages/pyecharts/datasets/city_coordinates.json里加上生成出的output.json中的数据),不然无法将涟漪散点显示到百度地图中,会报错 4.运行**init.py**文件,随后会生成多个html文件,我们只需要点击**西宁公交可视化平台.html**文件即可