日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

每日一练:Python国内疫情数据爬取与地图绘制

發(fā)布時(shí)間:2025/4/16 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 每日一练:Python国内疫情数据爬取与地图绘制 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python 國(guó)內(nèi)疫情數(shù)據(jù)爬取與地圖繪制

  • 效果圖
  • 累計(jì)確診疫情地圖繪制
  • ① 時(shí)時(shí)數(shù)據(jù)抓取
  • ② 獲取省份疫情數(shù)據(jù)
  • ③ 視覺(jué)配置項(xiàng)分段顏色數(shù)據(jù)設(shè)置
  • ④ 累計(jì)確診疫情地圖繪制
  • 現(xiàn)存確診疫情地圖繪制
  • ① 獲取省份疫情數(shù)據(jù)
  • ② 現(xiàn)存確診疫情地圖繪制

[ 系列文章篇 ]
Python 地圖篇 - 使用 pyecharts 繪制世界地圖、中國(guó)地圖、省級(jí)地圖、市級(jí)地圖實(shí)例詳解

效果圖

先給大家看下效果圖哈:

可以看剛和查詢的吉林累計(jì)確診疫情數(shù)據(jù)是一致的。

累計(jì)確診疫情地圖繪制

① 時(shí)時(shí)數(shù)據(jù)抓取

肺炎疫情的相關(guān)數(shù)據(jù)獲取請(qǐng)參考下面的文章:

[ 相關(guān)文章 ]
每日一練:Python 爬蟲(chóng)爬取全國(guó)新冠肺炎疫情數(shù)據(jù)實(shí)例詳解,使用 beautifulsoup4 庫(kù)實(shí)現(xiàn)

省份的效果圖展示:

城市的效果圖展示:

② 獲取省份疫情數(shù)據(jù)

這里是根據(jù) json 字符串提取的省份疫情數(shù)組數(shù)據(jù)。

import jsondef get_provinces(json_content):"""xiaolanzao, 2022.04.27【作用】獲取省份疫情數(shù)據(jù)【參數(shù)】json_content : json字符串【返回】省份累計(jì)確診數(shù)組數(shù)據(jù)"""# 將字符串轉(zhuǎn)化為字典json_data = json.loads(json_content)data = []# 省份數(shù)據(jù)展示for i in json_data:# 省份名稱處理,和地圖對(duì)應(yīng)province_name = i["provinceName"]if(len(province_name)>1):if(province_name[-1] == "省"):province_name = province_name[:-1]if(province_name[-1] == "市"):province_name = province_name[:-1]if(len(province_name)>3):if(province_name[-3:] == "自治區(qū)"):province_name = province_name[:-3]if(len(province_name)>3):if(province_name[-3:] == "維吾爾"):province_name = province_name[:-3]if(len(province_name)>2):if(province_name[-2:] == "壯族"):province_name = province_name[:-2]if(province_name[-2:] == "回族"):province_name = province_name[:-2]data.append((province_name, i["confirmedCount"]))print("全國(guó)各省份疫情數(shù)據(jù)如下:")for i in data:print(i)return datadata = get_provinces(json_content)

注意: 這里對(duì)原來(lái)的名稱進(jìn)行了處理,省份名稱和地圖對(duì)應(yīng)才能被識(shí)別到。

# 省份名稱處理,和地圖對(duì)應(yīng) province_name = i["provinceName"] if(len(province_name)>1):if(province_name[-1] == "省"):province_name = province_name[:-1]if(province_name[-1] == "市"):province_name = province_name[:-1] if(len(province_name)>3):if(province_name[-3:] == "自治區(qū)"):province_name = province_name[:-3] if(len(province_name)>3):if(province_name[-3:] == "維吾爾"):province_name = province_name[:-3] if(len(province_name)>2):if(province_name[-2:] == "壯族"):province_name = province_name[:-2]if(province_name[-2:] == "回族"):province_name = province_name[:-2]

未處理前是這樣的:

處理后是這樣的:

③ 視覺(jué)配置項(xiàng)分段顏色數(shù)據(jù)設(shè)置

首先要設(shè)置個(gè)視覺(jué)配置項(xiàng)分段顯示的數(shù)據(jù),后面會(huì)根據(jù)數(shù)據(jù)在哪個(gè)分段顯示為哪種演示。

pieces = [{'min': 10000, 'color': '#540d0d'},{'max': 9999, 'min': 1000, 'color': '#9c1414'},{'max': 999, 'min': 500, 'color': '#d92727'},{'max': 499, 'min': 100, 'color': '#ed3232'},{'max': 99, 'min': 10, 'color': '#f27777'},{'max': 9, 'min': 1, 'color': '#f7adad'},{'max': 0, 'color': '#f7e4e4'}, ] # 全局配置項(xiàng) .set_global_opts(# 設(shè)置標(biāo)題title_opts=opts.TitleOpts(title="中國(guó)疫情地圖"),# 設(shè)置視覺(jué)配置項(xiàng)分段顯示visualmap_opts=opts.VisualMapOpts(pieces=pieces,is_piecewise=True,is_show=True) )

這是效果圖:

④ 累計(jì)確診疫情地圖繪制

這里就根據(jù)數(shù)據(jù)生成地圖了。

# -*- coding:utf-8 -*- # 2022-4-1 # 作者:小藍(lán)棗 # 疫情地圖# 需要引用的庫(kù) from pyecharts import options as opts from pyecharts.charts import Mappieces = [{'min': 10000, 'color': '#540d0d'},{'max': 9999, 'min': 1000, 'color': '#9c1414'},{'max': 999, 'min': 500, 'color': '#d92727'},{'max': 499, 'min': 100, 'color': '#ed3232'},{'max': 99, 'min': 10, 'color': '#f27777'},{'max': 9, 'min': 1, 'color': '#f7adad'},{'max': 0, 'color': '#f7e4e4'}, ]def create_china_map():''' 作用:生成中國(guó)疫情地圖'''(Map().add(series_name="累計(jì)確診", data_pair=data, maptype="china", # 是否默認(rèn)選中,默認(rèn)為Trueis_selected=True,# 是否啟用鼠標(biāo)滾輪縮放和拖動(dòng)平移,默認(rèn)為Trueis_roam=True,# 是否顯示圖形標(biāo)記,默認(rèn)為Trueis_map_symbol_show=False)# 系列配置項(xiàng)# 關(guān)閉標(biāo)簽名稱顯示.set_series_opts(label_opts=opts.LabelOpts(is_show=True))# 全局配置項(xiàng).set_global_opts(# 設(shè)置標(biāo)題title_opts=opts.TitleOpts(title="中國(guó)疫情地圖"),# 設(shè)置視覺(jué)配置項(xiàng)分段顯示visualmap_opts=opts.VisualMapOpts(pieces=pieces,is_piecewise=True,is_show=True))# 生成本地html文件.render("中國(guó)疫情地圖.html"))create_china_map()

效果圖如下:

現(xiàn)存確診疫情地圖繪制

① 獲取省份疫情數(shù)據(jù)

這里和上面的區(qū)別就是由 data.append((province_name, i["confirmedCount"])) 換成了 data.append((province_name, i["currentConfirmedCount"]))

import jsondef get_provinces(json_content):"""xiaolanzao, 2022.04.27【作用】獲取省份疫情數(shù)據(jù)【參數(shù)】json_content : json字符串【返回】省份現(xiàn)存確診數(shù)組數(shù)據(jù)"""# 將字符串轉(zhuǎn)化為字典json_data = json.loads(json_content)data = []# 省份數(shù)據(jù)展示for i in json_data:# 省份名稱處理,和地圖對(duì)應(yīng)province_name = i["provinceName"]if(len(province_name)>1):if(province_name[-1] == "省"):province_name = province_name[:-1]if(province_name[-1] == "市"):province_name = province_name[:-1]if(len(province_name)>3):if(province_name[-3:] == "自治區(qū)"):province_name = province_name[:-3]if(len(province_name)>3):if(province_name[-3:] == "維吾爾"):province_name = province_name[:-3]if(len(province_name)>2):if(province_name[-2:] == "壯族"):province_name = province_name[:-2]if(province_name[-2:] == "回族"):province_name = province_name[:-2]data.append((province_name, i["currentConfirmedCount"]))print("全國(guó)各省份疫情數(shù)據(jù)如下:")for i in data:print(i)return datadata = get_provinces(json_content)

② 現(xiàn)存確診疫情地圖繪制

這里只是改變了下數(shù)據(jù)集名,由 series_name="累計(jì)確診" 變成了 series_name="現(xiàn)存確診"

# -*- coding:utf-8 -*- # 2022-4-1 # 作者:小藍(lán)棗 # 疫情地圖# 需要引用的庫(kù) from pyecharts import options as opts from pyecharts.charts import Mappieces = [{'min': 10000, 'color': '#540d0d'},{'max': 9999, 'min': 1000, 'color': '#9c1414'},{'max': 999, 'min': 500, 'color': '#d92727'},{'max': 499, 'min': 100, 'color': '#ed3232'},{'max': 99, 'min': 10, 'color': '#f27777'},{'max': 9, 'min': 1, 'color': '#f7adad'},{'max': 0, 'color': '#f7e4e4'}, ]def create_china_map():''' 作用:生成中國(guó)疫情地圖'''(Map().add(series_name="現(xiàn)存確診", data_pair=data, maptype="china", # 是否默認(rèn)選中,默認(rèn)為Trueis_selected=True,# 是否啟用鼠標(biāo)滾輪縮放和拖動(dòng)平移,默認(rèn)為Trueis_roam=True,# 是否顯示圖形標(biāo)記,默認(rèn)為Trueis_map_symbol_show=False)# 系列配置項(xiàng)# 關(guān)閉標(biāo)簽名稱顯示.set_series_opts(label_opts=opts.LabelOpts(is_show=True))# 全局配置項(xiàng).set_global_opts(# 設(shè)置標(biāo)題title_opts=opts.TitleOpts(title="中國(guó)疫情地圖"),# 設(shè)置視覺(jué)配置項(xiàng)分段顯示visualmap_opts=opts.VisualMapOpts(pieces=pieces,is_piecewise=True,is_show=True))# 生成本地html文件.render("中國(guó)疫情地圖.html"))create_china_map()

效果圖如下:

喜歡的點(diǎn)個(gè)贊?吧!

總結(jié)

以上是生活随笔為你收集整理的每日一练:Python国内疫情数据爬取与地图绘制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。