数据可视化基础案例[Python]
摘要
这是一篇人类低质量python数据分析文章,于20年暑假学习完成。
参考文章
2020年,世界各地爆发了一起新型冠状病毒肺炎公共卫生事件,给全世界的人民带来了不可估量的损失。时至今日,经过全国人民的共同努力,国内疫情现阶段处于可控的局面。本文将通过使用Python获取百度疫情实时大数据报告中的数据,对获取的数据进行整理,然后绘制成疫情地图进行数据可视化,实现实时的疫情动态记录,便于更精确了解疫情实时情况。
内容结构
创建get_data.py模块,使用Python的requests库请求数据, 目标网址
,然后对数据进行初步整理,输出数据表;创建execution.py模块用于整理各省份的实时数据;创建draw_map.py模块用于绘制实时疫情地图;最后,编写main.py总模块,对各模块进行整合,实现对整个流程的控制。
内容详情
下面介绍各模块,首先会贴出在Typora中的源码截图,便于直观进行源码阅读,其后附上写入记事本的文本代码和源文件以及各个模块的输出文件。
(1) 获取数据:get_data.py
导入相关模块,创建一个Get_data类,用于封装获取数据的所有函数,其中第一个函数,是一个简单的爬虫,用于爬取目标网站的数据,并将获取的数据写入一个本地目录的文本文件。
import requests
from lxml import etree
import json
import re
import openpyxl
class Get_data():
def get_data(self):
# 目标url
url = "https://voice.baidu.com/act/newpneumonia/newpneumonia/"
# 伪装请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/80.0.3987.149 Safari/537.36 '
}
# 发出get请求
response = requests.get(url,headers=headers)
# 将请求的结果写入文件,便于分析
with open('html.txt', 'w') as file:
file.write(response.text)
def get_time(self):
with open('html.txt','r') as file:
text = file.read()
# 获取更新时间
time_in = re.findall('"mapLastUpdatedTime":"(.*?)"',text)[0]
time_out = re.findall('"foreignLastUpdatedTime":"(.*?)"',text)[0]
print('国内疫情更新时间为 '+time_in)
print('国外疫情更新时间为 '+time_out)
return time_in,time_out
def parse_data(self):
with open('html.txt','r') as file:
text = file.read()
# 生成HTML对象
html = etree.HTML(text)
# 解析数据
result = html.xpath('//script[@type="application/json"]/text()')
# print(type(result))
result = result[0]
# print(type(result))
result = json.loads(result)
# print(type(result))
result = json.dumps(result['component'][0]['caseList&#