Python-PyEchart绘制地图(Map)

Python-PyEchart绘制地图Map

一、简介

参考官网地址:

https://pyecharts.org/#/zh-cn/intro

相关数据准备:

    关注上面公众号,回复“地图”即可获取相关数据。

图对象具体配置参考:

全局配置参考:

JSON数据参考:

1、全国疫情可视化地图案例参考:

绘制地图工具模块:

#绘制地图通用模块from pyecharts.charts import Mapfrom pyecharts.options import VisualMapOpts
def fun_map(title,maptype,data):    """    :fun_map:绘制地图函数    :param title: 添加数据 series_name系列名称    :param data: 地图相关数据      :param maptype: 地图类型    :return:    """    #1、开始绘制地图    print("开始绘制地图")    # 2.准备地图对象    map = Map()    # 3.准备数据,所用数据都是列表嵌套元组 data已经传    # 4.添加数据 series_name系列名称,用于 tooltip 的显示,legend 的图例筛选    # data_pair 数据项 (坐标点名称,坐标点值)    # 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件    map.add(series_name=title,maptype=maptype,data_pair=data)    # 5.设置全局选项    map.set_global_opts(        # 视图功能        visualmap_opts=VisualMapOpts(            # 该参数设置视图开启            is_show=True,            # 该参数改变视图模式 是否为分段型            is_piecewise=True,            # 颜色和表签的设置 自定义的每一段的范围,以及每一段的文字,以及每一段的特别的样式            pieces=[                {"min": 1, "max": 499, "label": "1-499", "color": "##DCDCDC"},                {"min": 500, "max": 999, "label": "500-999", "color": "#FFFACD"},                {"min": 1000, "max": 1499, "label": "1000-1499", "color": "#FFFFFF"},                {"min": 1500, "max": 1999, "label": "1000-1999", "color": "#BBFFFF"},                {"min": 2000, "max": 4999, "label": "2000-4999", "color": "#7FFFD4"},                {"min": 5000, "max": 9999, "label": "5000-9999", "color": "#FF3030"},                {"min": 10000, "label": "600以上", "color": "#8B1A1A"}            ]        )    )    # 6.绘图    map.render(f"{title}.html")
#对各省份数据进行处理city_01=[]def fun_city(city_name):    return city_name+"省"

调用地图工具模块中的函数:

##绘制全国疫情可视化地图# 1.导包import jsonimport map_tools
#2、导入数据try:    #打开文件    file_data=open("D:\疫情.txt", "r", encoding="UTF-8")    #读取文件内容    #对JSON字符串的file_data转换为字典dict    file_data_dict=json.loads(file_data.read())    #关闭文件    file_data.close()    #获取指定层级的数据    city_list=file_data_dict["areaTree"][0]["children"]    # print(f"获取各城市的数据:{city_list}")    data_list=[]    # for循环组装数据列表    for city_data in city_list:        city_name=city_data["name"]        #处理各省份名称问题        city_name=map_tools.fun_city(city_name)        city_confirm_nums=city_data["total"]["confirm"]        #组成元组tuple        city_tuple_data=(city_name,city_confirm_nums)        #元组添加到data_list中        data_list.append(city_tuple_data)    #调用绘制地图函数    map_tools.fun_map("全国疫情可视化地图","china",data_list)except Exception as e:    print(f"打开文件异常e:{e}")

效果图:

2、湖北省疫情情况地图绘制:

JSON数据层级:

使用地图工具绘制:

##绘制湖北疫情情况分布图import jsonfrom pyecharts_pack import map_tools
try:    #打开文件    file_data=open("D:\疫情.txt", "r", encoding="UTF-8")    #读取文件内容    #对JSON字符串的file_data转换为字典dict    file_data_dict=json.loads(file_data.read())    #关闭文件    file_data.close()    #获取指定层级的数据 6:代表湖北省    city_list=file_data_dict["areaTree"][0]["children"][6]["children"]    print(f"获取湖北省各城市的数据:{city_list}")    data_list=[]    # for循环组装数据列表    for city_data in city_list:        city_name=city_data["name"]+"市"        city_confirm_nums=city_data["total"]["confirm"]        #组成元组tuple        city_tuple_data=(city_name,city_confirm_nums)        #元组添加到data_list中        data_list.append(city_tuple_data)    #调用绘制地图函数    map_tools.fun_map("湖北省疫情可视化地图","湖北",data_list)except Exception as e:    print(f"打开文件异常e:{e}")

绘制效果图:

更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加。

### 使用 Pyecharts 绘制地图 #### 准备环境 安装 `pyecharts` 可通过 pip 实现[^2]: ```bash pip install pyecharts ``` #### 创建基础地图实例 下面是一个简单的例子来展示如何创建中国地图并添加一些数据点到这个地图上[^4]: ```python from pyecharts import options as opts from pyecharts.charts import Map import random # 随机生成省份名称和数值作为示例数据 provinces = ["广东", "北京", "上海", "江苏"] values = [random.randint(1, 100) for _ in range(len(provinces))] c = ( Map() .add( series_name="随机数", data_pair=[list(z) for z in zip(provinces, values)], maptype="china" ) .set_global_opts( title_opts=opts.TitleOpts(title="Map-基本示例"), visualmap_opts=opts.VisualMapOpts(max_=max(values)) ) ) c.render("basic_map_example.html") ``` 这段代码会生成一个 HTML 文件 (`basic_map_example.html`),其中包含了带有颜色渐变视觉映射的地图图表。 #### 自定义样式与配置项 对于更复杂的场景,可以进一步自定义地图的颜色、标签显示以及其他属性。例如设置标题位置居中以及开启区域标签显示等功能[^3]: ```python from pyecharts import options as opts from pyecharts.charts import Map map_chart = Map(init_opts=opts.InitOpts(width='800px', height='600px')) map_chart.set_global_opts( title_opts=opts.TitleOpts( title="大数据工作分布图", subtitle="data from 51job", pos_left="center", title_textstyle_opts=opts.TextStyleOpts(color="#404a59") ), visualmap_opts=opts.VisualMapOpts(is_show=True, max_=100), ) map_chart.add( "", [("广东", 70), ("四川", 60)], # 示例数据 maptype="china", is_visualmap=True, label_opts=opts.LabelOpts(is_show=True), ).render('customized_map.html') ``` 此段脚本不仅设置了全局选项中的标题文字风格,还指定了可视化的最大值范围,并启用了地理坐标系组件上的标签显示功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值