我有以下代码,其中mp
是Shapely
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
中的所有点都落入地图的边界。问题是:如何有效地仅映射地图边界框中的那些点?
答案 0 :(得分:1)
我想在大熊猫级别上过滤点是最有效的。为此,使用其bounds
属性获取Multipolygon的边界,然后使用
df[(df.lat > latmin) & (df.lat < latmax)
& (df.long > longmin) & (df.long < longmax)]
我假设您的纬度列名为lat
,经度列为long
。您可以从多边形边界获得latmin
,latmax
等等。