我正试着把雷达数据标在叶面上,我就快到了。我遵循这个示例(Contour plot data (lat,lon,value) within boundaries and export GeoJSON)将数据转换为GeoJson格式。
nb_class = 20
collec_poly = plt.contourf(lons,lats,np.array(poshdata), nb_class,alpha=0.5)
gdf = collec_to_gdf(collec_poly) # From link above
gdf.to_json()
colors = [p.get_facecolor().tolist()[0] for p in collec_poly.collections]
gdf['RGBA'] = colors
gdf
这将输出两列:geometry和RGBA。
RGBA geometry
0 [0.0, 0.0, 0.713903743316, 1.0] (POLYGON ((-71.57032079644679 42.2775236331535...
1 [0.0, 0.0960784313725, 1.0, 1.0] (POLYGON ((-71.56719970703125 42.2721176147460...
2 [0.0, 0.503921568627, 1.0, 1.0] (POLYGON ((-71.55678558349609 42.2721176147460...
3 [0.0, 0.896078431373, 0.970904490829, 1.0] (POLYGON ((-71.52552795410156 42.2849182620049...
4 [0.325743200506, 1.0, 0.641998734978, 1.0] (POLYGON ((-71.49427795410156 42.2939676156927...
5 [0.641998734978, 1.0, 0.325743200506, 1.0] (POLYGON ((-71.47344207763672 42.3003084448852...
6 [0.970904490829, 0.959331880901, 0.0, 1.0] (POLYGON ((-71.26508331298828 42.3200411822557...
7 [1.0, 0.581699346405, 0.0, 1.0] (POLYGON ((-71.15048217773438 42.3333218460720...
从那里我做了我的叶状图:
import folium
# Picked location between Sudbury and Somerville:
maploc = folium.Map(location=[42.377157,-71.236088],zoom_start=11,tiles="Stamen Toner")
folium.GeoJson(gdf).add_to(maploc)
这创建了我漂亮的叶状图,但多边形根本没有着色。如何使轮廓填充正确的颜色?修正不透明度?
我想我明白了。在我前面的代码中,polygon.get_facecolor()返回一个范围为0-1的RGBA值列表。我添加了这个函数(从thispost修改):
将其转换为十六进制字符串。然后:
然后,要绘制叶面中的颜色,我需要:
这创造了一个非常好看的情节!(属性名有点误导——实际上不是RGBA值,而是十六进制字符串。)
不是专家。。。我刚开始使用folium和jupyter,有一个类似的问题,但行。 你说你有GeoJson和polygons,而颜色包含在我假设的json中。
style_函数可以帮助您获得所需的内容?
下面的示例是使用此页生成的:http://geojson.io/ 我所要做的就是用style_函数进行“映射”。 也可以使用自定义函数,请参见: https://github.com/python-visualization/folium/blob/master/examples/Colormaps.ipynb
git hub上的folium源代码还包括几个很好的示例:
https://github.com/python-visualization/folium/tree/master/examples
在这里您可以找到可供选择的选项:
http://leafletjs.com/reference.html#path-options
希望你能站出来!
相关问题 更多 >
编程相关推荐