一、 json模块
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
- json.loads():将json格式的str转化成python的数据格式;
- json.loads():将python的数据格式(字典或列表)转化成json格式;
# 如何将json数据解析成我们所熟悉的Python数据类型? import json # 将json格式的str转化成python的数据格式:字典 dic = json.loads('{"name":"Tom","age":23}') res = json.loads('["name","age","gender"]') print(f'利用loads将json字符串转化成Python数据类型{dic}',type(dic)) print(f'利用loads将json字符串转化成Python数据类型{res}',type(res))
dics = {"name":"Tom","age":23} result = json.dumps(dics) print(type(result)) result
二、通过Python实现疫情地图可视化
需求:爬取疫情的数据、如何处理json数据以及根据疫情数据如何利用pyecharts绘制疫情地图。
1.数据的获取(基于request模块)
import requests import json # 国内疫情数据 China_url = 'https://view.inews.qq.com/g2/getOnsInfo"text-align: center">2.将json格式的数据保存到Excel
无论是json数据存储的,还是Python的基本数据类型存储的,对于数据分析都不是很友好,所以我们可以将其数据存储类型转化为pandas的DataFrame类型,因为DataFrame和Excel可以更好的相互转换。
生成的数据模式如下:
将以上的数据进行处理,获得Excel表一样规范的数据格式。
import pandas as pd chinaTotalData = pd.DataFrame(china_citylist) # 将整体数据chinaTotalData中的today和total数据添加到DataFrame中 # 处理total字典里面的各个数据项 # ====================================================================== confirmlist = [] suspectlist = [] deadlist = [] heallist = [] deadRatelist = [] healRatelist = [] # print(chinaTotalData['total'].values.tolist()[0]) for value in chinaTotalData['total'].values.tolist(): confirmlist.append(value['confirm']) suspectlist.append(value['suspect']) deadlist.append(value['dead']) heallist.append(value['heal']) deadRatelist.append(value['deadRate']) healRatelist.append(value['healRate']) chinaTotalData['confirm'] = confirmlist chinaTotalData['suspect'] = suspectlist chinaTotalData['dead'] = deadlist chinaTotalData['heal'] = heallist chinaTotalData['deadRate'] = deadRatelist chinaTotalData['healRate'] = healRatelist # =================================================================== # 创建全国today数据 today_confirmlist = [] today_confirmCutslist = [] for value in chinaTotalData['today'].values.tolist(): today_confirmlist.append(value['confirm']) today_confirmCutslist.append(value['confirmCuts']) chinaTotalData['today_confirm'] = today_confirmlist chinaTotalData['today_confirmCuts'] = today_confirmCutslist # ================================================================== # 删除total、today两列 chinaTotalData.drop(['total','today'],axis=1,inplace=True) chinaTotalData.head() # 将其保存到Excel中 chinaTotalData.to_excel('2021-02-03国内疫情.xlsx',index=False)处理好的数据结构如下表:
3.应用pyecharts进行数据可视化
pyecharts是一款将python与echarts结合的强大的数据可视化工具。绘制出来的图比Python的Matplotlib简单美观。使用之前需要在Python环境中按照pycharts。在终端中输入命令:pip install pyecharts
利用pyecharts绘制疫情地图
根据上面的疫情数据,我们可以利用其画出全国的疫情地图
在绘制前,我们需要安装echarts的地图包(可根据不同的地图需求进行安装)pip install echarts-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg pip install echarts-china-misc-pypkg pip install echarts-china-countries-pypkg pip install echarts-united-kingdom-pypkg# 导入对应的绘图工具包 import pandas as pd from pyecharts import options as opts from pyecharts.charts import Map df = pd.read_excel('./2021-02-03国内疫情.xlsx') # 1.根据绘制国内总疫情图(确诊) data = df.groupby(by='province',as_index=False).sum() data_list = list(zip(data['province'].values.tolist(),data['confirm'].values.tolist())) # 数据格式[(黑龙江,200),(吉林,300),...] def map_china() -> Map: c = ( Map() .add(series_name="确诊病例",data_pair=data_list,maptype='china') .set_global_opts( title_opts = opts.TitleOpts(title='疫情地图'), visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces = [{"max":9, "min":0, "label":"0-9","color":"#FFE4E1"}, {"max":99, "min":10, "label":"10-99","color":"#FF7F50"}, {"max":499, "min":100, "label":"100-4999","color":"#F08080"}, {"max":999, "min":500, "label":"500-999","color":"#CD5C5C"}, {"max":9999, "min":1000, "label":"1000-9999","color":"#990000"}, {"max":99999, "min":10000, "label":"10000-99999","color":"#660000"},] ) ) ) return c d_map = map_china() d_map.render("mapEchrts.html")最终的运行效果如下:
注:以上的运行环境是Python3.7版本,IDE是基于浏览器端的Jupter Notebook。
以上就是Python实现疫情地图可视化的详细内容,更多关于python 疫情地图可视化的资料请关注其它相关文章!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]