pyecharts 标记指定经纬度

本文介绍了一种使用Python和PyEcharts库将站点位置数据在地图上进行可视化的技术。通过读取CSV文件中站点的经纬度信息,利用Geo图表类型在地图上标记站点,并设置效果散点图样式,实现站点分布的直观展示。

标记指定经纬度

读取数据

import pandas as pd

stations = pd.read_csv('../Stationid_list.csv',delimiter=',')

在这里插入图片描述

画图

from pyecharts.charts import Geo
from pyecharts import options
from pyecharts.globals import GeoType

g = Geo().add_schema(maptype="china")

# 给所有点附上标签 'StationID'
for i in stations.index:
    s = stations.iloc[i]
    g.add_coordinate(s['StationID'],s['Longitude'],s['Latitude'])

# 给每个点的值赋为 1 
data_pair = [(stations.iloc[i]['StationID'],1) for i in stations.index]

# 画图
g.add('',data_pair, type_=GeoType.EFFECT_SCATTER, symbol_size=2)
g.set_series_opts(label_opts=options.LabelOpts(is_show=False))
g.set_global_opts(title_opts=options.TitleOpts(title="监测站点分布"))

# 保存结果到 html
result = g.render('stations.html')

自动在浏览器打开

这个太方便了!

import webbrowser

webbrowser.open_new_tab(result)

在这里插入图片描述

相关博客:

### 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` 及其依赖项。 - 对于复杂场景下的性能优化,建议减少不必要的动画效果或降低分辨率。 - 数据清洗阶段需特别注意经纬度的有效性和准确性。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颹蕭蕭

白嫖?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值