首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python plot轨迹密度

Python plot轨迹密度
EN

Stack Overflow用户
提问于 2017-05-13 11:42:32
回答 1查看 818关注 0票数 3

我正在研究轨迹,我想画一张轨迹的“密度图”。

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

代码语言:javascript
运行
复制
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的等高线)也可以出现在地图上,这将是很好的(因此关于时间和空间的信息是保守的)。

EN

回答 1

Stack Overflow用户

发布于 2017-05-15 22:40:17

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

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

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

Seaborn density plot

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43948977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档