形状文件数据图上的Python彩色网格

形状文件数据图上的Python彩色网格,python,python-2.7,matplotlib,shapefile,Python,Python 2.7,Matplotlib,Shapefile,我有一个数据集来自一个带有坐标的形状文件(.shp扩展名)。它们应该是这样的: -70.62 -33.43 -70.59 -33.29 等等。我已经开发了一种用pyplot绘制数据的方法,其中每个绿点代表一棵树,每条线代表一条街道,如下所示: 然而,我需要在它上面画一个网格,并根据每个部分上的树的数量给它的块上色。这样,树木较多的街区将采用较强的绿色,而树木较少的街区将采用浅绿色/黄色/红色。当然,这些颜色应该是部分透明的,因此贴图不会被完全覆盖 这是我的代码: import cartopy

我有一个数据集来自一个带有坐标的形状文件
(.shp扩展名)
。它们应该是这样的:

-70.62 -33.43
-70.59 -33.29
等等。我已经开发了一种用
pyplot
绘制数据的方法,其中每个绿点代表一棵树,每条线代表一条街道,如下所示:

然而,我需要在它上面画一个网格,并根据每个部分上的树的数量给它的块上色。这样,树木较多的街区将采用较强的绿色,而树木较少的街区将采用浅绿色/黄色/红色。当然,这些颜色应该是部分透明的,因此贴图不会被完全覆盖

这是我的代码:

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import cartopy.io.shapereader as shpreader
import shapely.geometry as sg

wgs84 = ccrs.Geodetic()
utm19s = ccrs.UTM(19, southern_hemisphere=True)

p_a = [-70.637, -33.449]
p_b = [-70.58, -33.415]

LL = utm19s.transform_point(p_a[0], p_a[1], wgs84)
UR = utm19s.transform_point(p_b[0], p_b[1], wgs84)

ax = plt.axes(projection=utm19s)
ax.set_extent([LL[0], UR[0], LL[1], UR[1]], crs=utm19s)

rds = shpreader.Reader('roadsUTM.shp')
trees = shpreader.Reader('treesUTM.shp')
rect = sg.box(LL[0], UR[0], LL[1], UR[1])

rds_sel = [r for r in rds.geometries() if r.intersects(rect)]
trees_sel = [t for t in trees.geometries() if t.intersects(rect)]

ax.add_geometries(rds_sel, utm19s, linestyle='solid', facecolor='none')
ax.scatter([t.x for t in trees_sel], [t.y for t in trees_sel], color = "green", edgecolor = "black", transform=utm19s)

plt.show()
TL;DR:一种使用shapefile内嵌的位置数据作为普通数字的方法可以解决我的部分问题。谢谢

编辑:因此我发现数据已经以UTM19S格式给出。在询问之前应该先研究一下。 但是,我仍然需要在地图上绘制所述网格