【问题标题】:Plotting time of day and location coordinates绘制一天中的时间和位置坐标
【发布时间】:2013-03-11 14:02:00
【问题描述】:

我必须绘制具有 DateTime 和 GPS 坐标信息的数据。举个例子:

2013-03-01 19:55:00     45.4565    65.6783
2013-03-01 01:40:00     46.3121    -12.3456
2013-03-02 11:25:00     23.1234    -85.3456
2013-03-05 05:00:00     15.4565    32.1234
......   

这只是一个与我拥有的数据类型匹配的随机示例。整个数据集为一周,时间戳四舍五入到最接近的 5 分钟。

我想在 python 中做的是可视化这些数据,以了解整个一周内每 24 小时的位置模式。因此,x 轴将有一天中的时间。我正在努力解决如何显示该位置的问题。可能需要 3D 绘图。

它会以不同的颜色显示每一天,并且整个星期的平均值还会显示一个(即整周平均为 24 小时)。

知道如何使用 python 和 matplotlib 将其可视化吗?

请注意,我目前无法绘制实际地图的位置。但就像 (x,y) 坐标一样。

【问题讨论】:

  • 应该整天都在一个情节中吗?您可以通过时间戳进行着色分散。或者也许每天创建一个具有“小倍数”的子图网格。你有多少条目?每天 1 或 2 个条目是一个现实的例子吗?
  • @RutgerKassies 不一定。但我想比较一周中不同日子的位置模式。我猜的基本问题是做一天。我每天每个小时每 5 分钟有一个条目。该示例仅显示数据格式。我需要学习的是什么是可视化这些数据并在 python 中执行的好方法:)

标签: python matplotlib data-visualization


【解决方案1】:

尝试使用 Folium 的 HeatMap with Time。 首先定义一个函数来生成地图。

def generateBaseMap(default_location, default_zoom_start=12):
    base_map = folium.Map(location=default_location, control_scale=True, zoom_start=default_zoom_start)
    return base_map

然后在按日期排序的列表中添加纬度和经度。

date_list = []
for date in df.date.sort_values().unique():
    date_list.append(df.loc[df.date == date, ['lat', 'lng']].values.tolist())

然后绘制随时间变化的热图

from folium.plugins import HeatMapWithTime

base_map = generateBaseMap(default_zoom_start=11, default_location = [lat, longitude])
HeatMapWithTime(date_list, radius=5, gradient={0.2: 'blue', 0.4: 'lime', 0.6: 'orange', 1: 'red'}, min_opacity=0.5, max_opacity=0.8, use_local_extrema=True).add_to(base_map)
base_map

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2020-06-09
    • 2023-02-07
    相关资源
    最近更新 更多