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

如何在Python单张地图中展示两个不同的坐标DataFrame

鱼类活动轨迹与接收器位置叠加可视化方案

需求说明

需要将记录鱼类不同时间点位置的Df1与水下接收器位置的Df2叠加到同一张可视化图中,要求:

  • 红色点表示鱼类的活动位置
  • 白色圆圈表示接收器位置

现有数据

鱼类位置数据(Df1)

FishTag       X         Y
32212   43.55154   -63.21155
32212   43.55896   -63.21458
32212   43.55157   -63.21785
32212   43.55452   -63.21154
32212   43.55122   -63.21455

接收器位置数据(Df2)

Receiver    X         Y
1         47.55154   -68.21155
2         47.58622   -68.26332
3         47.57745   -68.96251
4         48.57455   -68.96521
5         48.57567   -69.94551
6         48.57759   -69.96251
7         48.54145   -69.95950

解决方案代码

import seaborn as sns
import matplotlib.pyplot as plt

# 创建统一的绘图画布与轴对象
fig, ax = plt.subplots()

# 绘制鱼类活动位置:红色点
sns.scatterplot(data=Df1, x="X", y="Y", color="red", ax=ax, label="鱼类活动位置")

# 绘制接收器位置:白色圆圈(添加黑色边缘增强辨识度)
sns.scatterplot(data=Df2, x="X", y="Y", color="white", edgecolor="black", marker="o", ax=ax, label="接收器位置")

# 配置图表元素
ax.set_title("鱼类活动轨迹与接收器位置分布图")
ax.legend()

# 展示图表
plt.show()

关键说明

  1. 复用同一个ax绘图轴,实现两类数据的叠加展示
  2. 修正原代码中列名不匹配问题(原代码用"Lat"/"Lon",实际数据列是"X"/"Y")
  3. 给白色接收器圆圈添加黑色边缘,避免在白色背景下无法清晰识别
  4. 通过label参数添加图例,明确区分两类数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:35:42