pyecharts新功能体验 | pyecharts-Map3D实现新冠肺炎疫情全国数据立体可视化

pyecharts官方在2月28日发布了1.7的全新版本,最重要的一个是完善了Map3D:
具体请看:http://pyecharts.org/#/zh-cn/3d_charts?id=map3d-三维地图
在这里插入图片描述
觉得这个挺好玩的,正好今天在我之前的文章pyecharts实现新冠肺炎疫情可视化并搭建BI数据大屏(Plus)有兄弟评论说代码不能用了…害,当然不能用了,(TX页面又改了呗)我中间都改过一次了…

于是趁着这个周五晚上,我想继续把我的那个项目改改,然后去看了看页面…BUT,不看不知道,一看吓一跳!
在这里插入图片描述
看这里,以往的数据都消失了!!!!!!!!这…
在这里插入图片描述
以前的每天的数据都消失了,这就没办法了啊,这些数据是我的BI数据大屏的灵魂啊,没了也没办法了,没有这些数据,搭建出来的BI也将会毫无意义。

所以我换了个方向,因为之前的都是平面(2维)的,既然官方出三维的了,那我就换三维的可视化现有的数据吧…


老规矩,先上成品,后上代码:
在这里插入图片描述
动态图不是很清晰,这里放个静态的:
在这里插入图片描述
(PS:这里我可视化的是累计确诊人数)

Demo:

import json
import requests
import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType, ChartType

reponse = requests.get('https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5').json()
data = json.loads(reponse['data'])
province = []
confirm = []
for item in data['areaTree'][0]['children']:
    province.append(item['name'])
    confirm.append(item['total']['confirm'])
china_data = pd.DataFrame({"province": province, "confirm": confirm})

dicts_all = {'黑龙江': [127.9688, 45.368], '上海': [121.4648, 31.2891],
             '内蒙古': [110.3467, 41.4899], '吉林': [125.8154, 44.2584],
             '辽宁': [123.1238, 42.1216], '河北': [114.4995, 38.1006],
             '天津': [117.4219, 39.4189], '山西': [112.3352, 37.9413],
             '陕西': [109.1162, 34.2004], '甘肃': [103.5901, 36.3043],
             '宁夏': [106.3586, 38.1775], '青海': [101.4038, 36.8207],
             '新疆': [87.9236, 43.5883], '西藏': [91.11, 29.97],
             '四川': [103.9526, 30.7617], '重庆': [108.384366, 30.439702],
             '山东': [117.1582, 36.8701], '河南': [113.4668, 34.6234],
             '江苏': [118.8062, 31.9208], '安徽': [117.29, 32.0581],
             '湖北': [114.3896, 30.6628], '浙江': [119.5313, 29.8773],
             '福建': [119.4543, 25.9222], '江西': [116.0046, 28.6633],
             '湖南': [113.0823, 28.2568], '贵州': [106.6992, 26.7682],
             '广西': [108.479, 23.1152], '海南': [110.3893, 19.8516],
             '广东': [113.28064, 23.125177], '北京': [116.405289, 39.904987],
             '云南': [102.71225, 25.040609], '香港': [114.165460, 22.275340],
             '澳门': [113.549130, 22.198750], '台湾': [121.5200760, 25.0307240]}
for item in [list(z) for z in zip(china_data['province'], china_data['confirm'])]:
    dicts_all[item[0]].append(item[1])

(Map3D()
 .add_schema(
    itemstyle_opts=opts.ItemStyleOpts(
        color="rgb(5,101,123)",
        opacity=1,
        border_width=0.8,
        border_color="rgb(62,215,213)"),
    map3d_label=opts.Map3DLabelOpts(
        is_show=False,
        formatter=JsCode(
            "function(data){return data.name + " " + data.value[2];}")),
    emphasis_label_opts=opts.LabelOpts(
        is_show=False,
        color="#fff",
        font_size=10,
        background_color="rgba(0,23,11,0)"),
    light_opts=opts.Map3DLightOpts(
        main_color="#fff",
        main_intensity=1.2,
        main_shadow_quality="high",
        is_main_shadow=False,
        main_beta=10,
        ambient_intensity=0.3))
 .add(
    series_name="bar3D",
    data_pair=list(zip(list(dicts_all.keys()), list(dicts_all.values()))),
    type_=ChartType.BAR3D,
    bar_size=1,
    shading="lambert",
    label_opts=opts.LabelOpts(
        is_show=True,
        formatter=JsCode(
            "function(data){return data.name + ' ' + data.value[2];}")))
 .set_global_opts(title_opts=opts.TitleOpts(title="COVID-19全国疫情分布图"))).render("render.html")


其实吧,我觉得以前数据都被清空,一个是因为时间太长了,都100天了,一直在这里挂着也没啥意义…,还有最重要的一点,就是在全国人民的努力下,疫情得到了控制,因为最近每天新增的人数与多半个月之前那会完全没法比啊,连零头都不到…还是要再次 感谢奋战在前线的医护人员,包括警察、滴滴司机、外卖小哥、社会服务人员、志愿者、社区工作人员等等…还有在后方或捐钱或捐物的社会各界爱心人士,包括每一位宅在家“做贡献”的大家❤;每个人都在为这场“战疫”奋斗着,我们也相信,一切都会好起来,像以前一样…

发布了28 篇原创文章 · 获赞 21 · 访问量 7532

猜你喜欢

转载自blog.csdn.net/qq_43613793/article/details/104704630