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

Phedra ·
更新时间:2024-09-21
· 627 次阅读

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


作者:乌 鸦 坐 飞 机



肺炎 疫情 map 数据 pyecharts 可视化

需要 登录 后方可回复, 如果你还没有账号请 注册新账号