没有合适的资源?快使用搜索试试~ 我知道了~
首页Python|200行代码实现疫情地图
注:文末获取完整代码及词库 在我们每天关注着疫情变化的同时,可以看到各式各样的疫情地图,本文就让我们一起来实现一下疫情地图的制作。 文中的代码均由python实现,需要准备的库如下: bs4 pyechart(V1,博主版本1.7.1) pandas 一、库的引入 import re from bs4 import BeautifulSoup from urllib.request import urlopen from pyecharts.charts import Map, Geo from pyecharts import options as opts 二、数据源代码获取(来自丁
资源详情
资源评论
资源推荐

Python||200行代码实现疫情地图行代码实现疫情地图
注:文末获取完整代码及词库注:文末获取完整代码及词库
在我们每天关注着疫情变化的同时,可以看到各式各样的疫情地图,本文就让我们一起来实现一下疫情地图的制作。
文中的代码均由python实现,需要准备的库如下:
bs4
pyechart(V1,博主版本1.7.1)
pandas
一、库的引入一、库的引入
import re
from bs4 import BeautifulSoup
from urllib.request import urlopen
from pyecharts.charts import Map, Geo
from pyecharts import options as opts
二、数据源代码获取(来自丁香园)二、数据源代码获取(来自丁香园)
html = urlopen(
"https://3g.dxy.cn/newh5/view/pneumonia_peopleapp").read().decode('utf-8')
# 获取html网页的源代码
bs = BeautifulSoup(html, "html.parser")
三、获取省份三、获取省份/确诊数字典确诊数字典
获取国内现存确诊数列表
获取国内累计确诊数列表
str1 = bs.body.text
# 查找字符串中指定国内省份对应数据的关键字,进行截取
str1 = str1[str1.find('window.getAreaStat = '):] data = str1[str1.find('[{'):str1.find('}catch')] # 字符串转字典数组
data_list = eval(data)
# 省份现存确诊数
new_dict = {}
# 省份累计确诊数
new_dict1 = {}
#循环遍历data_list取数据{省份:确诊数}
for province in data_list:
#将省份现存确诊数放入new_dict字典中,处理不合格的省份名称replace
new_dict[province['provinceName'].replace('自治区', '').replace(
'回族', '').replace('维吾尔', '').replace('省', '').replace('市', '').replace(
'壮族', '')] = province['currentConfirmedCount'] #省份累计确诊数
new_dict1[province['provinceName'].replace('自治区', '').replace(
'回族', '').replace('维吾尔', '').replace('省', '').replace('市', '').replace(
'壮族', '')] = province['confirmedCount']
# print(new_dict)
# print(new_dict1)
四、制作现存确诊地图四、制作现存确诊地图
#将字典中的省份key以列表的形式取出来
province = list(new_dict.keys())
#将字典中确诊数values以列表形式取出来
values = list(new_dict.values())
c = (
Map(init_opts=opts.InitOpts(
width='1600px', height='800px', bg_color="white"))
.add(
series_name="现存确诊",
data_pair=[list(z) for z in zip(province, values)],
maptype='china')
.set_global_opts(
title_opts=opts.TitleOpts(title="中国现存确诊病例地图"),
visualmap_opts=opts.VisualMapOpts(
pieces=[{
"max": 0,
"label": "0人",
"color": "#FFFFFF"
}, {
"min": 1,
"max": 9,
"label": "1-10人",
"color": "#FFEBCD"
}, {
"min": 10,
"max": 99,
"label": "10-99人",
"color": "#FFA07A"
}, {
"min": 100,
"max": 499,
"label": "100-499人",
"color": "#FF4040"
}, {
"min": 500,
"max": 999,
"label": "500-999人",
"color": "#CD2626"
}, {
"min": 1000,
"max": 10000,
"label": "1000-10000人",
"color": "#B22222"
}, {













安全验证
文档复制为VIP权益,开通VIP直接复制

评论0