Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Legend location in a DualMap

Open
#1,167 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python

Research direction

Start by running the supplied DualMap example on folium 0.8.3 and trace the DualMap, LayerControl, and colormap add_to entry points. Done means each map pane displays only its assigned legend and the legend position can be changed; no repository file or test is named in the report.

Written by the indexing model from the issue text.

Description

bug plugin
Please add a code sample or a nbviewer link, copy-pastable if possible
# Your code here
# Add Dual-basemap
m = folium.plugins.DualMap(location=target_city, zoom_start = 9, tiles= 'openstreetmap')

# layer definition
layer_1= folium.features.Choropleth(
    geo_data= gjson
    ,name= 'column_1'
    ,key_on='feature.properties.postcode'
    ,data= zipcodes_geom
    ,columns= ['postcode', 'column_1']
    ,fill_color='YlGnBu'
    ,highlight=True
    ,legend_name='column_1'
    )
# popup window
tooltip_1= folium.features.GeoJsonTooltip(['postcode', 'column_1'])
layer_1.geojson.add_child(tooltip_1) # add it to the layer

#===========================================================================
layer_2= folium.features.Choropleth(
    geo_data= gjson
    ,name= 'column_2'
    ,key_on='feature.properties.postcode'
    ,data= zipcodes_geom
    ,columns= ['postcode', 'column_2']
    ,fill_color='BuPu'
    ,highlight=True
    ,legend_name='column_2'
    )
# popup window
tooltip_2 = folium.features.GeoJsonTooltip(['postcode', 'column_2'])
layer_2.geojson.add_child(tooltip_2) # add to the layer
#=============================================================
# dual map
# fg_both = folium.FeatureGroup(name='postcode_both').add_to(m)
fg_1= folium.FeatureGroup(name='column_1').add_to(m.m1)
fg_2= folium.FeatureGroup(name='column_2').add_to(m.m2)

layer_1.geojson.add_to(fg_1)
layer_2.geojson.add_to(fg_2)

# adding figure 1 and 2 to the basemap
fg_1.add_to(m.m1)
fg_2.add_to(m.m2)
#===========================
# add Layer control to Dual basemapa
# add legend for layer 1
folium.LayerControl(collapsed=True).add_to(m)
colormap_1= cm.linear.YlGnBu_06.scale(0,180)
colormap_1= colormap_1.to_step(index=[0,30,60,90,120,150,180])
colormap_1.caption= 'column_1'
colormap_1.add_to(m.m1)
# add legend for layer 2
colormap_2= cm.linear.PuBu_06.scale(0,180)
colormap_2= colormap_2.to_step(index=[0,14,29,43,58,72,87])
colormap_2.caption= 'column_2'
colormap_2.add_to(m.m2)
#===========================
# display map
display(m)
Problem description

Creating a Dual Map with two different geojson:
At the moment of adding the legends to the basemap (m), if I add one legend and define where to locate it could be grid 1(m.m1) or grid 2(m.m2) "It Works fine", but if I add the second legend, they get stack one on top of other, no mater that I assigned them to a different grid.
Also, It's there a way to move the legend to a different position in the basemap?

Expected Output

Would be that each grid of the Dual Map (basemap) contain one geojson and one legend.

Output of folium.__version__

0.8.3
dual_map

Dominant language
Python
Stars
7.4k
Forks
2.3k
Avg merge
17h 22m
Merged PRs (30d)
11

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from python-visualization/folium

All issues in python-visualization/folium

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.