吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5523|回复: 12
收起左侧

[Python 转载] 使用pyecharts绘制全国冠状病毒疫情地图

[复制链接]
wuzonghui 发表于 2020-2-6 18:36

这几天宅在家里闲得慌,随便写个练练手

效果图


2020-02-06_18-33-06.png
import requests
import json
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}')
    )
)

# 在 html 中渲染图表
cmap.render()

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
54048371 + 1 + 1 谢谢@Thanks!
天空宫阙 + 1 + 1 谢谢@Thanks!
zzcommon + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

studyalife 发表于 2020-2-6 22:03
1.如果引入时间模块,将输出改为变量形式,会更清楚是哪天的数据
import time
mytime = time.strftime('%Y-%m-%d')

cmap.render(mytime + '疫情地图.html')

2.打包成exe文件,可以每天生成一张数据图,能对比数据
pyinstaller -F 文件名.py
shaguadou 发表于 2020-2-6 18:52
gxq229 发表于 2020-2-6 19:12
补充一下,大家在测试代码时,记得在cmap.render()括号内添加输出文件 XXX.HTML,这样才能通过html文件访问
例如:cmap.render('疫情地图.html')
 楼主| wuzonghui 发表于 2020-2-6 21:02
gxq229 发表于 2020-2-6 19:12
补充一下,大家在测试代码时,记得在cmap.render()括号内添加输出文件 XXX.HTML,这样才能通过html文件访问 ...

默认是render.html的
不劳虎 发表于 2020-2-6 23:37
感谢三位,已经成功运行了。
oGsLegolas 发表于 2020-2-7 20:45
不知道什么原因生成的html一直打不开在转,然后Chrome的后台software reporter tool一直在疯狂占用cpu
zhangbice 发表于 2020-2-8 09:38
学习了,谢谢楼主
whiskers2018 发表于 2020-2-14 19:12
那种热力图传播能实现吗
Nicky.Ares 发表于 2020-2-14 19:37
感谢分享,以后留下来学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 08:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表