簡體   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