日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

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

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

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

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

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

效果圖

先給大家看下效果圖哈:

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

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

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

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

[ 相關(guān)文章 ]
每日一練:Python 爬蟲爬取全國新冠肺炎疫情數(shù)據(jù)實(shí)例詳解,使用 beautifulsoup4 庫實(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("全國各省份疫情數(shù)據(jù)如下:")for i in data:print(i)return datadata = get_provinces(json_content)

注意: 這里對(duì)原來的名稱進(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]

未處理前是這樣的:

處理后是這樣的:

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

首先要設(shè)置個(gè)視覺配置項(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="中國疫情地圖"),# 設(shè)置視覺配置項(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)棗 # 疫情地圖# 需要引用的庫 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():''' 作用:生成中國疫情地圖'''(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="中國疫情地圖"),# 設(shè)置視覺配置項(xiàng)分段顯示visualmap_opts=opts.VisualMapOpts(pieces=pieces,is_piecewise=True,is_show=True))# 生成本地html文件.render("中國疫情地圖.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("全國各省份疫情數(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)棗 # 疫情地圖# 需要引用的庫 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():''' 作用:生成中國疫情地圖'''(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="中國疫情地圖"),# 設(shè)置視覺配置項(xiàng)分段顯示visualmap_opts=opts.VisualMapOpts(pieces=pieces,is_piecewise=True,is_show=True))# 生成本地html文件.render("中國疫情地圖.html"))create_china_map()

效果圖如下:

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

總結(jié)

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

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