如何在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()
关键说明
- 复用同一个
ax绘图轴,实现两类数据的叠加展示 - 修正原代码中列名不匹配问题(原代码用"Lat"/"Lon",实际数据列是"X"/"Y")
- 给白色接收器圆圈添加黑色边缘,避免在白色背景下无法清晰识别
- 通过
label参数添加图例,明确区分两类数据
内容的提问来源于stack exchange,提问作者toms
相关产品推荐
相关产品推荐

