文章目录

  • 一、结果及源码展示
  • 二、项目准备
    • 1、第三方库
    • 2、知识点概况
    • 3、推荐视频
  • 三、数据获取
  • 四、数据库交互
  • 五、绘制前端页面
  • 六、Web程序开发
  • 七、未来可期

一、结果及源码展示


自己做的这个可视化比较朴素,简单分为七个部分:

  • 全国累计趋势(包括累计确诊、累计治愈、累计死亡)
  • 全国每日确诊、治愈情况
  • 中间比较明显的四个数据(累计确诊、每日新增、累计治愈、累计死亡)
  • 中国疫情地图(颜色深度表示每日新增情况)
  • 省份或直辖市每日新增数量前五
  • 江苏省各城市现有的确诊人数

源码如下:https://github.com/Polaris119/Epidemic-visualization可以给个star嘛

说真的,自己花了四五天的时间,第一次感觉一个项目能用到这么多知识,学习的过程也遇到了很多的困难,尤其是前端方面的知识,以前接触的非常少。最后慢慢跑完所有的数据后,真的非常开心。

二、项目准备

1、第三方库

  • requests
  • pymysql
  • flask

可根据自己情况,酌情安装。

2、知识点概况

  • html
  • css
  • javascript
  • jQuery
  • python
  • requests
  • mysql
  • pymysql
  • json
  • ajax
  • flask
  • echarts

3、推荐视频

像我一样的小白,可以参考这个视频,结合自身,可以更快地进入项目。

可参考视频:传送门

注意:这个视频中有一些不对的地方,稍微注意下就可以解决,不要全按照视频来哦

三、数据获取

关于新冠疫情的数据非常多,可自行寻找。

通过检查抓包,可以轻松发现数据,以json的形式进行存储的。

需要获取的数据如下:

  • 全国今日新增、累计确诊、治愈人数、死亡人数
  • 每个省份的每个城市今日新增、累计确诊、治愈人数、死亡人数
  • 全国历史累计确诊、疑似、治愈、死亡人数
  • 全国历史每日累计确诊、疑似、治愈、死亡人数

部分代码如下:

详细可见源码: https://github.com/Polaris119/Epidemic-visualization

# 获取当日数据
def get_now(data):now = []data_time = str(data['diseaseh5Shelf']['lastUpdateTime'])  # 数据更新时间data_all = data['diseaseh5Shelf']['areaTree'][0]data_province_s = data['diseaseh5Shelf']['areaTree'][0]['children']# 获取全国今日新增、累计确诊、治愈人数、死亡人数confirms = data_all['total']['confirm']confirms_add = data_all['today']['confirm']heals = data_all['total']['heal']deads = data_all['total']['dead']# 获取每个省份的每个城市今日新增、累计确诊、治愈人数、死亡人数for data_province in data_province_s:province = data_province['name']  # 省份for data_city in data_province['children']:city = data_city['name']  # 城市confirm = data_city['total']['confirm']  # 确诊confirm_add = data_city['today']['confirm']  # 新增heal = data_city['total']['heal']  # 治愈dead = data_city['total']['dead']  # 死亡now.append((data_time, province, city, confirm_add, confirm, heal, dead))return confirms, confirms_add, heals, deads, now# 获取历史数据
def get_past(data):past = {}for data_day in data:data_time = data_day['date']  # 获取最原始的时间time_deal = time.strptime(data_time, '%m.%d')  # 根据指定的格式把一个时间字符串解析为时间元组date = time.strftime('%m-%d', time_deal)  # 重新组成新的时间字符串past[date] = {'confirm': data_day['confirm'],  # 确诊'suspect': data_day['suspect'],  # 疑似'heal': data_day['heal'],  # 治愈'dead': data_day['dead']  # 死亡}return past

四、数据库交互

对于数据库的相关知识,小白可参考我之前写的两篇文章:
【MySQL安装】MySQL的安装及环境配置
【MySQL语句】MySQL基础语句


在开始之前,需要创建一个数据库,我这里创建的是covid

接着,需要连接数据库,以我的为例:

import pymysqldef mysql():db = pymysql.connect(host='localhost', user='root', password='填写自己的密码', database='covid', charset='utf8')cur = db.cursor()return db, cur

成功连接之后,就可以进行存取数据了。

插入全国今日新增、累计确诊、治愈人数、死亡数据为例:

# 写入当日数据
def insert_now(now):db, cur = mysql()try:cur.execute("DROP TABLE IF EXISTS 当日数据")# 写创建表的sql语句set_sql_now = "create table 当日数据(时间 varchar(100),省份 varchar(50),城市 varchar(50),新增确诊 int(11)," \"确诊人数 int(11),治愈人数 int(11),死亡人数 int(11))ENGINE=InnoDB DEFAULT CHARSET=utf8"# 执行sql语句cur.execute(set_sql_now)# 保存db.commit()# 写入数据库save_sql_now = "insert into 当日数据 values(%s,%s,%s,%s,%s,%s,%s)"cur.executemany(save_sql_now, now)  # now位置必须是个列表,列表里面的元素是数组db.commit()print('当日数据写入成功')except Exception as e:print('当日数据写入失败原因:%s' % e)

五、绘制前端页面

主要用到了Echarts提供的模板。ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,可免费使用。

Echarts官网如下:https://echarts.apache.org/zh/index.html

具体的使用可以到官方文档查看:https://echarts.apache.org/zh/api.html#echarts

六、Web程序开发

Flask是一个使用 Python编写的轻量级Web应用框架。其WSGl( Python Web Server Gateway Interface)工具包采用 Werkzeug,模板引擎则使用 Jinja2,是目前十分流行的Web框架。

使用pycharm创建一个flask项目,会自动帮我们生成两个文件夹【templates】【static】和一个python文件【app.py】,我们需要将写好的HTML文件放在【templates】目录下,CSS和JS放在【static】目录下。

数据的传输可以使用Ajax。Ajax是Asynchronous Javascript and XML的简称,通过Ajax向服务器发送请求,接收服务器返回的json数据,然后使用 Javascript修改网页,来实现页面局部数据更新。

基本格式如下:

$.ajax({type:"post",     //请求类型url:"/目标路由",  //请求地址data:{},         //数据datatype:"json",success:function (data) {//请求成功的回调函数,data是返回的数据},error:function () {//请求失败时执行}
})

七、未来可期

文章到这里就要结束了,但故事还没有结局

如果本文对你有帮助,记得点个赞

中国新冠疫情数据可视化相关推荐

  1. 利用Python实现新冠疫情数据可视化(获取疫情历史数据,制作南丁格尔玫瑰图、疫情地图、动态疫情组合图、词云)

    文章目录 前言 1.获取疫情历史数据 2.制作南丁格尔玫瑰图 2.1 全球各国确诊人数玫瑰图 2.2 全国各省市零新增天数玫瑰图 3.制作疫情地图 3.1全国各省市目前确诊总人数疫情地图 3.2全球各 ...

  2. 新冠疫情数据可视化python_【一点资讯】新冠疫情数据分析 | Python可视化工具看全国各地的新增趋势 www.yidianzixun.com...

    - 点击上方"中国统计网"订阅我吧!- 文末领取[腾讯疫情分析完整代码+数据包] 本篇文章将分享腾讯疫情实时数据抓取,获取全国各地和贵州省各地区的实时数据,并将数据存储至本地,最后 ...

  3. 数据分享|函数型数据分析部分省市新冠疫情数据

    作者:Mingji Tang 统计学中传统的数据类型有截面数据和时间序列数据.这两者都只能在某一纵向或横向上探究数据,且部分前提条件又很难满足.而函数型数据连续型函数与离散型函数长期以来的分离状态,实 ...

  4. 新冠疫情数据统计 蓝桥杯楼赛第二十三期

    新冠疫情数据统计 介绍 2020 年,新冠疫情肆掠全球.约翰·霍普金斯大学 跟踪了全球病例数据,包括总病例数.COVID-19 传播速度以及全球爆发情况.我们拿到了截止于某日的疫情数据,希望通过 Py ...

  5. 世界各国新冠疫情数据

    接上篇,这是数学建模用到的数据集,各国新冠疫情数据,时间范围2020.2-2021.4,我放到把它放到Gitee仓库了,地址在下面.. Gitee仓库地址,收集数据不易,各位观众老爷,点个赞再走吧

  6. 新冠疫情数据建模分析

    4.2 湖北疫情数据预处理 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn ...

  7. (Scrapy框架)爬虫获取百度新冠疫情数据 | 爬虫案例

    目录 前言 环境部署 插件推荐 爬虫目标 项目创建 webdriver部署 项目代码 Item定义 中间件定义 定义爬虫 pipeline输出结果文本 配置文件改动 验证结果 总结 前言 闲来无聊,写 ...

  8. 李宏毅HW01——新冠疫情数据的预测

    目的:熟悉熟悉pytorch 导入数据 !gdown --id '1kLSW_-cW2Huj7bh84YTdimGBOJaODiOS' --output covid.train.csv !gdown ...

  9. 新冠疫情数据实时显示-next.js

    假设咱们要构建一个显示冠状病毒统计数据的网站,主页显示每个国家/地区的信息,并带有指向更多详细信息的链接. 所有数据都来自一个 JSON 文件,咱们可以从公共 URL 下载该文件, 该文件每天更新一次 ...

最新文章

  1. Dispatch 执行ABC任务,执行完成之后刷新UI,指定任务D
  2. sublime 3114注册码
  3. Go-Web框架-Beego架构(二)
  4. java中定义一个CloneUtil 工具类
  5. 搜素算法(基础)--DFS/BFS算法(JAVA)
  6. niginx反向代理解决前后端跨域问题
  7. 人生不可能完美因此我们要学会讲究着过
  8. 开课吧课程:什么是TreeSet类
  9. 目标检测(8):CenterNet-Objects as Points-将目标建模为边界框中心点的方法
  10. 【设计模式】迭代器模式
  11. Artifact XXX:war exploded: Artifact is being deployed, please wait...解决方法
  12. 古体字与简体字对照表_中文簡体字与繁体字对照表
  13. 句法结构分析:基于PCFG的基本分析方法
  14. Win11系统打开电脑磁盘显示磁盘错误无法打开怎么办?
  15. R语言生存分析数据分析可视化案例
  16. 计算机网络硬件脆弱性,计算机网络的脆弱性包括哪些
  17. 转:使用Mosquitto-Auth-Plugin对mqtt客户端进行验证
  18. oracle 数据库口令,oracle的口令资料
  19. Spring------基于xml的DI (一)设值注入、构造注入
  20. 8位寄存器置位与清零操作

热门文章

  1. NR PRACH(五) type1 RA(4-step)基本过程
  2. 羊水穿刺改为脐血穿刺
  3. 通讯:岁寒情深 电暖农村
  4. 欧盟新法将个人隐私放在首位
  5. java解析excel合并单元格,100%好评!
  6. 亚马逊筋膜枪UL1647测试报告流程介绍
  7. mysql 设置连接超时_如何配置MySQL数据库超时设置
  8. 2022北京最新八大员之(安全员)考试试题题库及答案
  9. python余数不等于的符号_Python扫盲,看完这篇,你的Python基础就差不多了
  10. 洗地机那个牌子好?洗地机品牌排行榜