I'm trying to make a map in Folium with multiple layers, each consisting of shaded areas (using GeoJSON) with colors given by a colormap. I'd like to add legends to my layers. I found a first solution here, but the problem with this solution were that the legend is fixed at the top right and more importantly, that it's always there. Instead, I'd like a legend that is only shown when the corresponding layer is shown. Here is some example code that I tried (where m is my Folium map and cm1 and cm2 are color maps): folium.GeoJson(data['Temp'], name='Temp', style_function=lambda x: { 'fillColor': cm1(x['properties']['Temp']), 'fillOpacity': 0.2, 'color' : None }, highlight_function=lambda x: {'weight':3, 'color':'black'}, tooltip=folium.features.GeoJsonTooltip(fields=['Temp', 'Rain'], labels=True, sticky=True ), show=False).add_to(m) folium.GeoJson(data['Rain'], name='Rain', style_function=lambda x: { 'fillColor': cm2(x['properties']['Rain']), 'fillOpacity': 0.2, 'color' : None }, highlight_function=lambda x: {'weight':3, 'color':'black'}, tooltip=folium.features.GeoJsonTooltip(fields=['Temp', 'Rain'], labels=True, sticky=True ), show=False).add_to(m) cm1.caption = 'Temp scale' cm2.caption = 'Rain scale' m.add_child(cm1) m.add_child(cm2) folium.LayerControl().add_to(m) How can I change my code so that the legends are only shown when the corresponding layers are shown? (And if possible, how can I move the legends to the bottom left?) Continue reading...