記事のディレクトリ
業績(2020年2月13日)
基本的な流れ
- グラブ流行のデータから、全国のデータテンセント流行の動的なリアルタイム、直接JSONを取得
- 地域の地理アウトフィルターは存在しない(または地理は文句を言うでしょう)
- ヒートマップを描くGEO
データフォーマット
パケットキャプチャ解析の次の資料を参照してください
全国流行の分布を描く、パイソンとグラブ新しいコロナウイルス肺炎の流行データ
また、データは、テキスト、プレス、主に正規表現で、1は、以下を参照することができている場合には
、市内の流行のマップを描き、パイソンとリアルタイムデータコロナキャッチ肺炎の小説
コードの実装
#%%
# 全国疫情地区分布(各省确诊病例)
def catch_cn_disease_dis_ex():
timestamp = '%d'%int(time.time()*1000)
url_area = ('https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
'&callback=&_=') + timestamp
world_data = json.loads(requests.get(url=url_area).json()['data'])
china_data = jsonpath.jsonpath(world_data,
expr='$.areaTree[0].children[*]')
ls_province_names = jsonpath.jsonpath(china_data, expr='$[*].name')
ls_confirm_vals = jsonpath.jsonpath(china_data, expr='$[*].total.confirm')
ls_province_confirm = list(zip(ls_province_names, ls_confirm_vals,))
ls_city_names = jsonpath.jsonpath(china_data, expr='$[*].children[*].name')
ls_city_confirm_vals = jsonpath.jsonpath(china_data, expr='$[*].children[*].total.confirm')
ls_city_confirm = list(zip(ls_city_names, ls_city_confirm_vals))
return ls_province_confirm, world_data, ls_city_confirm
#%%
g_ls_area_cfm_tuple = catch_cn_disease_dis_ex()[2]
#%%
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType
# 过滤掉无效地区,如'地区待确认'、'外地来沪'等
# 注:数据源中台湾部分的数据未细化到城市,城市name为‘地区待确认’
def filter_city_cfm_by_geo(ls_area_cfm_tuple):
ls_cfm_legal_cities = []
c = Geo().add_schema(maptype='china')
for city_name, city_cfm_val in ls_area_cfm_tuple:
if c.get_coordinate(name=city_name) is None:
print(city_name)
else:
ls_cfm_legal_cities.append(tuple([city_name, city_cfm_val]))
print(ls_cfm_legal_cities)
return ls_cfm_legal_cities
#%%
ls_cfm_legal_cities = filter_city_cfm_by_geo(g_ls_area_cfm_tuple)
print(ls_cfm_legal_cities)
#%%
# 绘制全国疫情热力图
def heatmap_cn_disease_dis(ls_cfm_legal_cities) -> Geo:
c = (
Geo(init_opts=opts.InitOpts(width='100%', height='900px'))
.add_schema(maptype='china')
.add('中国', ls_cfm_legal_cities, type_=ChartType.HEATMAP) # EFFECT_SCATTER|SCATTER|HEATMAP
# .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_series_opts(label_opts=opts.LabelOpts(is_show=True,
# 把name中的经纬度干掉
formatter=JsCode("""
function(params){
if (typeof(params.data) == 'undefined') {
return params.value[2];
} else {
return params.data.name + params.data.value[2] + '例' ;
}
}"""
))
)
# 数目差别太大不宜用连续颜色,opts.VisualMapOpts(is_show=True, min_=0, max_=1000),
.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_show=True,
#is_piecewise=False, # 是否为分段型
pos_top='center',
# min_=0,
# max_=500, # 怎么设置差额巨大数据的颜色分布呢用分段?
is_piecewise=True, # 是否为分段型
pieces=[
{'min': 10000},
{'min': 1000, 'max': 10000},
{'min': 500, 'max': 999},
{'min': 100, 'max': 499},
{'min': 10, 'max': 99},
{'min': 0, 'max': 5} ],
),
title_opts=opts.TitleOpts(title='冠状病毒疫情热力图')
)
)
return c
#%%
heatmap_cn_disease_dis(ls_cfm_legal_cities).render('中国疫情热力地图.html')
記事のシリーズ
まず:ベースマップに基づいてのPythonとグラブ新しいコロナウイルス肺炎リアルタイムデータは、地方の流行分布描く
のPythonとグラブ新しいコロナウイルス肺炎の流行データ、全国流行の分布(ベースマップ)と歴史描画:セカンド
パートIIIを:グラブベースマップに基づいてのPythonを有する新規コロナウイルス肺炎リアルタイムデータは、都市の流行のマップ描画
パートIVを:Pythonの有する新規コロナウイルス肺炎リアルタイムデータをクロール、pyechartsは地方の流行マップを描くV1.X
さらに、ケースをpyecharts:
ヒストグラム、柱状スタッキングチャート、棒グラフ、ヒストグラム、パレート図、円グラフ、ドーナツ、バラ:Pythonのpyechartsパターン()描画V1.Xと
Pythonのpyecharts V1と。 X描くグラフィックス(II):行、行エリア、散布図、レーダー、ボックスプロット、ワードクラウド
マスク、統一戦争Yimoを着て外出、外出しないようにしよう!
湖北省神が祝福します!神は、中国を祝福します!