pyecharts Map与Geo画图笔记

 

目录

 

1.安装pyecharts

2.查看pyecharts版本

3.Map

4.Geo

5. 去掉地图中的小红点


1.安装pyecharts

pip install pyecharts==0.5.11

2.查看pyecharts版本

import pyecharts
pyecharts.__version__

3.Map

Map是实现地图区域可视化,是区域可视化. Map依赖的是额外安装的地图包,如:

安装额外包:

pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
pip install echarts-united-kingdom-pypkg

如果要添加经纬度坐标,只能在源文件里添加

修改源文件的地区名称及坐标:

栗子:香港地图

from pyecharts import Map

districts1=[
"中西区","湾仔区","东区","南区","油尖旺区","深水埗区","九龍城区","黃大仙区","观塘区","荃湾区","屯門区","元朗区","北区","大埔区","西貢区",
    "沙田区","葵青区","离岛区"
]

value1 = [20000,30000,40000,34546,33567,22467,
          66700,233366,89900,35600,68480,56000,
          65900,56700,45000,56700,98760,34630
]#随机输入值
map = Map("", "", title_pos='center', width=1000, height=1000)
map.add("", 
        districts1, value1, maptype='香港', 
        is_visualmap=True, 
        is_map_symbol_show=False,#去掉地图中的小红点
        visual_range=[min(value1), max(value1)],
        is_label_show=False , 
        label_formatter='{b}'+'{c}',
)
map.render("house_price_of_HongKong_Map.html")
map

4.Geo

Geo是实现的地图散点图可视化,散点也可以根据数值大小而变化. Pyecharts中Geo函数常用参数详解

add_coordinate()方法添加经纬度坐标

栗子:

from pyecharts import Geo

 
districts=['白云区', '从化区', '番禺区', '海珠区', '花都区', '黄埔区', '荔湾区', '南沙区', '天河区', '越秀区', '增城区']

value = [ 100, 200, 300,400, 500,600,700,800,900,1000, 1100]

geo = Geo("Geo地图示例", "",title_pos='center', width=1000, height=1000)
geo.add_coordinate('南沙区', 113.525165,22.801624)
geo.add_coordinate('白云区', 113.273238,23.3)
geo.add_coordinate('从化区', 113.586679,23.548748)
geo.add_coordinate('增城区', 113.810627,23.261465)
geo.add_coordinate('番禺区', 113.384152,22.937556)
geo.add_coordinate('海珠区', 113.361575,23.08)
geo.add_coordinate('花都区', 113.220463,23.403744)
geo.add_coordinate('黄埔区', 113.550541,23.24)
geo.add_coordinate('荔湾区', 113.23,23.05)
geo.add_coordinate('天河区', 113.361575,23.20)
geo.add_coordinate('越秀区', 113.266835,23.128537)
geo.add("",
        districts, value, maptype='广州', 
        is_visualmap=True, 
        is_label_show=True , 
        visual_range=[min(value), max(value)],
        label_formatter='{b}'
       )
geo.render("population_density_of_guangzhou.html")

 

 

5. 去掉地图中的小红点

is_map_symbol_show=False这句是去掉小红点的,is_label_show=True是将名称标注在地图上的。

https://blog.youkuaiyun.com/weixin_36677127/article/details/83188810

 

Reference:

https://blog.youkuaiyun.com/weixin_41563274/article/details/82904106?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control

https://blog.youkuaiyun.com/qq_37851620/article/details/92802159

https://zhuanlan.zhihu.com/p/36336689

pyecharts官网

 

### PyEcharts 使用经纬度绘制地图 #### 地理轨迹图 (GeoLines) 通过 `GeoLines` 类可以实现基于经纬度的地理轨迹图。以下是具体实现方式: ```python from pyecharts.charts import GeoLines from pyecharts import options as opts data = [ [("北京", [116.4074, 39.9042]), ("上海", [121.4737, 31.2304])], [("上海", [121.4737, 31.2304]), ("广州", [113.2644, 23.1291])] ] geolines = ( GeoLines() .add( series_name="城市连线", data_pair=data, geo_cities_coords={"北京": [116.4074, 39.9042], "上海": [121.4737, 31.2304], "广州": [113.2644, 23.1291]}, linestyle_opts=opts.LineStyleOpts(color="blue", width=1), ) .set_global_opts(title_opts=opts.TitleOpts(title="GeoLines Example")) ) geolines.render("geolines_example.html") ``` 上述代码展示了如何利用 `GeoLines` 方法创建一条连接多个城市的路径[^1]。 --- #### 动态散点地图 如果需要展示动态变化的地图数据,可以通过 `Timeline` `Geo` 的组合来完成。以下是一个简单的例子: ```python import pandas as pd from pyecharts.charts import Geo, Timeline from pyecharts import options as opts timeline = Timeline() for year in range(2010, 2015): # 假设我们有几年的数据 df = pd.DataFrame({ 'city': ['北京', '上海', '广州'], 'value': [year * 10, year * 20, year * 30] }) geocoords = { '北京': [116.4074, 39.9042], '上海': [121.4737, 31.2304], '广州': [113.2644, 23.1291] } c = ( Geo() .add_schema(maptype="china") # 设置地图类型为中国 .add_coordinate_json(json_file=None) # 如果需要加载外部JSON文件可设置此选项 .add( series_name=str(year), data_pair=[[i, v['value']] for i, v in df.set_index('city').T.to_dict().items()], coordinate_region=geocoords, symbol_size=10, color='red' ) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts( visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title=f"{year} 年中国主要城市发展情况"), ) ) timeline.add(c, str(year)) timeline.render("dynamic_scatter_map.html") ``` 这段代码实现了按年份显示不同城市的数值变化,并将其渲染成 HTML 文件[^2]。 --- #### 自定义地区经纬度 当某些地区的名称未被默认支持时,可通过传递一个字典到 `geo_cities_coords` 参数来自定义这些区域的经纬度。例如: ```python custom_coords = {"阿城": [126.58, 45.32]} c = ( GeoLines() .add( series_name="自定义坐标示例", data_pair=[(("哈尔滨", custom_coords["阿城"]),)], geo_cities_coords=custom_coords, ) .render("custom_coordinates.html") ) ``` 这允许开发者灵活扩展系统的内置功能[^3]。 --- ### 注意事项 - 确保安装最新版 `pyecharts` 及其依赖项。 - 对于复杂场景下的性能优化,建议减少不必要的动画效果或降低分辨率。 - 数据清洗阶段需特别注意经纬度的有效性准确性。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值