如何有效地仅映射落在地图边界框内的那些点?

时间:2016-07-02 14:18:32

标签: python pandas matplotlib

我有以下代码,其中mpShapely Multipolygon框之外的Fiona ax = fig.add_subplot(111) minx, miny, maxx, maxy = mp.bounds w, h = maxx - minx, maxy - miny ax.set_xlim(minx, maxx) ax.set_ylim(miny, maxy) ax.set_aspect(1) patches = [] for idx, p in enumerate(mp): patches.append(PolygonPatch(p, fc='#ffffff', ec='#000000', alpha=1., zorder=1)) ax.add_collection(PatchCollection(patches, match_original=True)) plt.show()

> 0 -34.026810  -71.101670  A
> 1 -32.986970  -71.501580  G
> 2 -40.931400  -73.027190  C

我有一个大熊猫数据框,其中有很多带有标签的Lat / Long对。

df

然而,并非:hover中的所有点都落入地图的边界。问题是:如何有效地仅映射地图边界框中的那些点?

1 个答案:

答案 0 :(得分:1)

我想在大熊猫级别上过滤点是最有效的。为此,使用其bounds属性获取Multipolygon的边界,然后使用

过滤数据框
df[(df.lat > latmin) & (df.lat < latmax) 
   & (df.long > longmin) & (df.long < longmax)]

我假设您的纬度列名为lat,经度列为long。您可以从多边形边界获得latminlatmax等等。