最新要闻

广告

手机

英国房地产因利率上升陷入困境 房价正以2011年来最快速度下跌

英国房地产因利率上升陷入困境 房价正以2011年来最快速度下跌

宁夏评选出上半年10名“宁夏好人” 95后消防员因敬业奉献入选

宁夏评选出上半年10名“宁夏好人” 95后消防员因敬业奉献入选

家电

Python数据可视化-地图可视化

来源:博客园


【资料图】

Python数据可视化-地图可视化

一、基础地图使用

基础地图演示

二、疫情地图-国内疫情地图

具体代码如下

"""演示全国疫情可视化地图开发"""import jsonfrom pyecharts.charts import Mapfrom pyecharts.options import *# 读取数据文件f = open("疫情.txt", "r", encoding="UTF-8")data = f.read()  # 全部数据# 关闭文件f.close()# 取到各省数据# 将字符串json转换为python的字典data_dict = json.loads(data)  # 基础数据字典# 从字典中取出身份的数据province_data_list = data_dict["areaTree"][0]["children"]# 组装每个省份和确诊人数为元组,并各个省的数据都封装入列表内data_list = []  # 绘图需要用的数据列表for province_data in province_data_list:    province_name = province_data["name"]  # 省份名称    # province_name = str(province_name) + str("省")  # 有bug,有些特殊的省份不满足这个条件,需要加特别行政区啥的。。。    province_confirm = province_data["total"]["confirm"]  # 确诊人数    data_list.append((province_name, province_confirm))  # 将元组组装到绘图的列表中print(data_list)# 创建地图对象map = Map()# 添加数据map.add("各省份确诊人数", data_list, "china")# 设置全局配置,定制分段的视觉映射map.set_global_opts(    title_opts=TitleOpts(title="全国疫情地图"),    visualmap_opts=VisualMapOpts(        is_show=True,  # 是否显示        is_piecewise=True,  # 是否分段        pieces=[            {"min": 1, "max": 99, "label": "1~99人", "color": "#CCFFFF"},            {"min": 100, "max": 999, "label": "100~999人", "color": "#FFFF99"},            {"min": 1000, "max": 4999, "label": "1000~4999人", "color": "#FF9966"},            {"min": 5000, "max": 9999, "label": "5000~9999人", "color": "#FF6666"},            {"min": 10000, "max": 99999, "label": "10000~99999人", "color": "#CC3333"},            {"min": 100000, "label": "100000+", "color": "#990033"},        ]    ))# 绘图map.render("全国疫情地图.html")

实现效果如下图所示

三、疫情地图-省级疫情地图

安徽省疫情地图

具体代码如下:

"""演示河南省疫情地图开发"""import jsonfrom pyecharts.charts import Mapfrom pyecharts.options import *# 读取文件f = open("疫情.txt", "r", encoding="UTF-8")data = f.read()# 关闭文件f.close()# 获取河南省数据# json数据转换为python字典data_dict = json.loads(data)# 取到河南省数据cities_data = data_dict["areaTree"][0]["children"][31]["children"]# 准备数据为元组并放入listdata_list = []for city_data in cities_data:    city_name = city_data["name"] + "市"    city_confirm = city_data["total"]["confirm"]    data_list.append((city_name, city_confirm))# 手动添加济源市的数据# data_list.append(("济源市", 5))# 构建地图map = Map()map.add("安徽省疫情分布", data_list, "安徽")# 设置全局选项map.set_global_opts(    title_opts=TitleOpts(title="安徽省疫情地图"),    visualmap_opts=VisualMapOpts(        is_show=True,   # 是否显示        is_piecewise=True,  # 是否分段        pieces=[            {"min": 1, "max": 99, "label": "1~99人", "color": "#CCFFFF"},            {"min": 100, "max": 999, "label": "100~9999人", "color": "#FFFF99"},            {"min": 1000, "max": 4999, "label": "1000~4999人", "color": "#FF9966"},            {"min": 5000, "max": 9999, "label": "5000~99999人", "color": "#FF6666"},            {"min": 10000, "max": 99999, "label": "10000~99999人", "color": "#CC3333"},            {"min": 100000, "label": "100000+", "color": "#990033"},        ]    ))# 绘图map.render("安徽省疫情地图.html")

实现效果如下:

关键词: