You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何用Python在地图上绘制带名称的经纬度数据

解决经纬度地图绘制问题

你的代码存在几处关键问题,修正后即可完成带名称的点位地图绘制:

问题梳理

  • 你的数据表是空格分隔格式,但pd.read_csv默认用逗号分隔,直接读取会导致列错位
  • 注释的绘图代码里参数不匹配:lon='long'对应的数据列实际是lon,hover_name="id"对应的数据列实际是name
  • 缺少plotly.express的导入语句,取消注释后会报错

修正后的完整代码

import pandas as pd
import plotly.express as px

# 读取空格分隔的数据,处理多空格情况
df = pd.read_csv("input_latlon.csv", sep='\s+')

# 绘制地理散点图,匹配正确列名
fig = px.scatter_geo(
    df,
    lat='lat',
    lon='lon',
    hover_name="name",  # 鼠标悬停显示点位名称
    title="经纬度点位地图"
)

# 调整地图视角,聚焦到数据所在的青藏高原区域
fig.update_geos(
    center=dict(lat=35.5, lon=85.4),
    zoom=7  # 缩放级别,数值越大视角越近
)

fig.update_layout(title_x=0.5)  # 标题居中
fig.show()

可选优化(更清晰底图)

如果需要更精细的地图底图,可以改用scatter_mapbox,需提前申请免费的Mapbox Token(可在Plotly官网获取):

import pandas as pd
import plotly.express as px

df = pd.read_csv("input_latlon.csv", sep='\s+')

# 设置Mapbox Token
px.set_mapbox_access_token("你的Mapbox Token")
fig = px.scatter_mapbox(
    df,
    lat='lat',
    lon='lon',
    hover_name="name",
    zoom=7,
    center=dict(lat=35.5, lon=85.4),
    title="经纬度点位地图"
)
fig.show()

内容的提问来源于stack exchange,提问作者user19520518

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:36:21