gpt4 book ai didi

Python 绘图轨迹密度

转载 作者:行者123 更新时间:2023-12-04 17:51:59 25 4
gpt4 key购买 nike

我正在研究轨迹,我想绘制轨迹的“密度图”。

这是一个只有 4 条轨迹的代码示例,例如,我可以使用它在 basemap 上绘制轨迹。

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.basemap import Basemap

map = Basemap(projection="merc",resolution="i",llcrnrlat=25,urcrnrlat=65,llcrnrlon=-100,urcrnrlon=-55)
map.bluemarble()

dico={}
dico["traj1"]=[[27.5, -86.5], [35.5, -85.0], [40.5, -84.0], [45.5, -82.5], [46.0, -81.5], [47.5, -79.5], [48.5, -78.0], [49.5, -76.0], [51.0, -75.0]]
dico["traj2"]=[[27.5, -88.5], [35.5, -92.5], [40.5, -97.5], [45.5, -93.5], [48.5, -90.0], [53.5, -95.0], [57.0, -100.0], [55.5, -102.0], [53.5, -101.5]]
dico["traj3"]=[[27.5, -88.5], [33.5, -88.0], [34.0, -86.5], [34.0, -84.5], [34.0, -82.0], [34.0, -80.0], [34.0, -78.5], [34.0, -77.5], [32.5, -77.0]]
dico["traj4"]=[[27.5, -86.5], [35.5, -82.5], [40.5, -77.5], [45.5, -78.5], [47.5, -77.5], [47.0, -76.0], [46.0, -73.0], [45.5, -70.5], [45.5, -66.5]]

for i in range(0,4) :
lons_values=[item[1] for item in dico["traj"+str(i+1)]]
lats_values=[item[0] for item in dico["traj"+str(i+1)]]

z,t = map(lons_values, lats_values)
map.plot(z, t, linewidth=3.5,color=np.random.rand(3,1))

有谁知道如何绘制带有描述轨迹主要模式的轮廓的包络线?例如,如果我有 100 条轨迹,我想可视化不同的轮廓,颜色表示这条路径中轨迹的“集中度”。

如果我们考虑轨迹的每个点都对应一个时间步长,如果关于时间步长的信息(比如穿过每个时间步长 t 的等高线)也可以出现在 map 上,那就太好了(这样关于时间和空间的信息是守恒的)。

最佳答案

我使用 seaborn 模块找到了我的问题的解决方案:

我使用 sns.kdeplot(df['x'],df['y'], shade=True) 来获取绘图。然后我只需要将它投影到 map 上即可。

您可以通过以下链接找到我使用的教程:

Seaborn density plot

关于Python 绘图轨迹密度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43948977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com