繁体   English   中英

Python绘图轨迹密度

[英]Python plot trajectories density

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

这是一个只有4个轨迹的代码示例,我可以用它来绘制基础地图上的轨迹。

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的轮廓线)也可能出现在地图上,那就太棒了(这样的信息)关于时间和空间是守恒的)。

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

我使用sns.kdeplot(df['x'],df['y'], shade=True)来获得绘图。 然后我只需要在地图上投影。

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

Seaborn密度图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM