Search code examples
pythonplotlygeopandas

Python /Plotly/Geopandas


I keep on getting this error , and have read others online getting in ,

ImportError: geopandas, pyshp and shapely must be installed for this figure factory.

Run the following commands to install the correct versions of the following modules:

```
pip install geopandas==0.3.0
pip install pyshp==1.2.10
pip install shapely==1.6.3
```
If you are using Windows, follow this post to properly install geopandas and dependencies:http://geoffboeing.com/2014/09/using-geopandas-windows/

If you are using Anaconda, do not use PIP to install the packages above. Instead use conda to install them:

```
conda install plotly

conda install geopanda

The thing is , I have installed plotly/geopanda via the methods above and it still does not work , but when I import plotly, geopand alone it does not throw an error. really when I break down my code below, this line is what is throwing the error: ff.create_choropleth - my full code is below:

import plotly, geopandas
import plotly.plotly as py
import plotly.figure_factory as ff
import numpy as np
import pandas as pd
import xlrd
df_sample = pd.read_excel('popdata.xlsx') # Read in your data
values = df_sample['Change'].tolist() # Read in the values contained within your file
fips = df_sample['FIPS'].tolist() # Read in FIPS Codes

colorscale = ["#171c42","#223f78","#1267b2","#4590c4","#8cb5c9","#b6bed5","#dab2be",
              "#d79d8b","#c46852","#a63329","#701b20","#3c0911"]

endpts = list(np.linspace(-75, 75, len(colorscale) - 1)) # Identify a suitable range for your data

#fig = ff.create_choropleth(
  # fips=fips, values=values, colorscale=colorscale, show_state_data=True, binning_endpoints=endpts, # If your values is a list of numbers, you can bin your values into half-open intervals
   # county_outline={'color': 'rgb(255,255,255)', 'width': 0.5}, 
   # legend_title='% change', title='% Change in disease between 1980-2014'
#)
py.plot(fig, filename='diseasechange')

Solution

  • pip install geopandas==0.8.1 
    

    fixed this issue for me.