Pyechart(五) 地图 爬取数据&中国疫情地图

地图的显示使用pyechart来实现也十分简单,本文主要进行简单的数据爬取,然后可视化。

数据的来源:腾讯新闻

先确定数据的url:

 确认url为:

https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5

导入需要的包:

import json
import requests
from pyecharts import options as opts
from pyecharts.charts import Map

没有的同学情自行下载

从json中获取数据:

url = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"
res = json.loads(requests.get(url).json()["data"])#json.loads()是用来读取字符串
datas = res["areaTree"][0]["children"]
#获取到指定的内容,需要的数据在["areaTree"][0]["children"]里面
#数据预处理方便下面使用
china_total = "确诊:{} 疑似:{} 治愈:{} 死亡:{} 更新日期:{}".format(res["chinaTotal"]["confirm"],
                                                       res["chinaTotal"]["suspect"], res["chinaTotal"]["heal"],
                                                       res["chinaTotal"]["dead"], res["lastUpdateTime"])

pyechart部分:

for data in datas:
    provinces.append(data["name"])
    confirm_value.append(data["total"]["confirm"])

cmap = (
    Map(init_opts=opts.InitOpts(width="900px", height="700px", page_title="新型冠状病毒疫情地图"))#初始化

    .add("确诊", [list(z) for z in zip(provinces, confirm_value)], "china", is_map_symbol_show=False)
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=True)
    )
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces=[
            {"min": 1000, "color": "#70161d"},
            {"min": 500, "max": 1000, "color": "#cb2a2f"},
            {"min": 100, "max": 500, "color": "#e55a4e"},
            {"min": 10, "max": 100, "color": "#f59e83"},
            {"min": 1, "max": 10, "color": "#fdebcf"}      #设置范围
        ]),

        title_opts=opts.TitleOpts(title="全国新型冠状病毒疫情地图", subtitle=china_total, pos_left="center", pos_top="10px"),
        legend_opts=opts.LegendOpts(is_show=False),
        tooltip_opts=opts.TooltipOpts(trigger_on="click", formatter='省份:{b}<br/>{a}:{c}')
    )
    .render("map.html")
)

完整代码如下:

import json
import requests
from pyecharts import options as opts
from pyecharts.charts import Map
url = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"
res = json.loads(requests.get(url).json()["data"])
datas = res["areaTree"][0]["children"]
china_total = "确诊:{} 疑似:{} 治愈:{} 死亡:{} 更新日期:{}".format(res["chinaTotal"]["confirm"],
                                                       res["chinaTotal"]["suspect"], res["chinaTotal"]["heal"],
                                                       res["chinaTotal"]["dead"], res["lastUpdateTime"])
provinces = []
confirm_value = []
for data in datas:
    provinces.append(data["name"])
    confirm_value.append(data["total"]["confirm"])

cmap = (
    Map(init_opts=opts.InitOpts(width="900px", height="700px", page_title="新型冠状病毒疫情地图"))

    .add("确诊", [list(z) for z in zip(provinces, confirm_value)], "china", is_map_symbol_show=False)
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=True)
    )
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces=[
            {"min": 1000, "color": "#70161d"},
            {"min": 500, "max": 1000, "color": "#cb2a2f"},
            {"min": 100, "max": 500, "color": "#e55a4e"},
            {"min": 10, "max": 100, "color": "#f59e83"},
            {"min": 1, "max": 10, "color": "#fdebcf"}
        ]),

        title_opts=opts.TitleOpts(title="全国新型冠状病毒疫情地图", subtitle=china_total, pos_left="center", pos_top="10px"),
        legend_opts=opts.LegendOpts(is_show=False),
        tooltip_opts=opts.TooltipOpts(trigger_on="click", formatter='省份:{b}<br/>{a}:{c}')
    )
    .render("map.html")
)

结果:

  • 1
    点赞
  • 5
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chaplaRY

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值