Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

How to make a choropleth map with a slider using Plotly in Python?

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Choropleth Map is a type of thematic map in which a set of pre-defined areas is colored or patterned in proportion to a statistical variable that represents an aggregate summary of a geographic characteristic within each area. Choropleth maps provide an easy way to visualize how a variable varies across a geographic area or show the level of variability within a region.

Sliders can be used in plotly to change the data displayed or the style of a plot. It is a handy tool that can be used to display changes in a choropleth map.

Installation

Let’s start by installing plotly:

pip install plotly

Now, let’s Import the necessary libraries.

Python3




import pandas as pd
import plotly
import numpy as np

Loading Dataset

Loading sample dataset. We’ll use this dataset to plot a choropleth map.

Python3




df = pd.read_csv('https://raw.githubusercontent\
.com/plotly/datasets/master/2011_us_ag_exports.csv')
  
data = [dict(type='choropleth'
            locations = df['code'].astype(str),
            z=df['total exports'].astype(float),
            locationmode='USA-states')]

Creating Slider

Now, let’s build our slider:

Python3




steps = []
  
for i in range(len(data)):
    step = dict(method='restyle',
                args=['visible', [False] * len(data)],
                label='Year {}'.format(i + 1980))
    step['args'][1][i] = True
    steps.append(step)
  
sliders = [dict(active=0, pad={"t": 1}, steps=steps)]

Final Code with Output

Finally, let’s put all the code together and plot the choropleth map with a slider.

Python3




import pandas as pd
import plotly
import numpy as np
  
plotly.offline.init_notebook_mode()
  
# Reading sample data using pandas DataFrame
df = pd.read_csv('https://raw.githubusercontent.\
com/plotly/datasets/master/2011_us_ag_exports.csv')
  
data = [dict(type='choropleth',
             locations = df['code'].astype(str),
             z=df['total exports'].astype(float),
             locationmode='USA-states')]
  
# let's create some more additional, data
for i in range(5):
    data.append(data[0].copy())
    data[-1]['z'] = data[0]['z'] * np.random.rand(*data[0]['z'].shape)
  
# let's now create slider for map
steps = []
for i in range(len(data)):
    step = dict(method='restyle',
                args=['visible', [False] * len(data)],
                label='Year {}'.format(i + 1980))
    step['args'][1][i] = True
    steps.append(step)
  
slider = [dict(active=0,
                pad={"t": 1},
                steps=steps)]    
layout = dict(geo=dict(scope='usa',
                       projection={'type': 'albers usa'}),
              sliders=slider)
  
fig = dict(data=data, 
           layout=layout)
plotly.offline.iplot(fig)

Output:


My Personal Notes arrow_drop_up
Last Updated : 21 Feb, 2022
Like Article
Save Article
Similar Reads
Related Tutorials