Python:如何使用Basemap加速在UK地图上映射经度和纬度数据的过程

问题描述 投票:0回答:2

我有一个非常大的数据集(超过570K行)作为pandas数据帧。它具有经度和纬度列(所有英国位置)。所以我想在英国地图上绘制它们并使用matplotlib底图。但是,绘制它需要很长时间。有没有办法加快这个过程,或者我的代码中有任何错误?

for index, row in road.iterrows():
    count = row['count']
    x, y = m(row["Longitude"], row["Latitude"])
    size = count ** 2 + 3
    m.plot(x, y, 'o', markersize=size, color='#444444', alpha=0.8)
python matplotlib matplotlib-basemap
2个回答
0
投票

几点想法:

  1. 将数据集修剪为较小的集合以捕获时间并测量改进。
  2. 如果您不使用索引,请不要在for循环中使用索引,即for row in road.iterrows():
  3. 如果您只在循环中使用它们,请不要分配变量。

就像是:

for row in road.iterrows():
    m.plot(m(row["Longitude"], row["Latitude"]),
       'o',
       markersize=(row['count'] ** 2 + 3),
       color='#444444', 
       alpha=0.8)

看起来不漂亮,但应该加快一点。

然后跟踪每个变化如何影响性能。

祝好运!


0
投票

这实际上取决于您尝试对数据进行可视化的内容。

我的第一个想法是制作数据的密度图(首先将数据自动分类到更大的网格中,然后用颜色绘制该网格,以指示每个文件夹中有多少东西)。

© www.soinside.com 2019 - 2024. All rights reserved.