In [10]:
import pandas as pd
import geopandas as gpd
import folium
import shapely
import matplotlib.pyplot as plt
from shapely.ops import unary_union
%matplotlib inline

In [17]:
gdf = gpd.GeoDataFrame.from_file("DEPARTEMENT/DEPARTEMENT.shp")
gdf.head()


Out[17]:
CODE_CHF CODE_DEPT CODE_REG ID_GEOFLA NOM_CHF NOM_DEPT NOM_REG X_CENTROID X_CHF_LIEU Y_CENTROID Y_CHF_LIEU geometry
0 300 39 27 DEPARTEM0000000000000001 LONS-LE-SAUNIER JURA BOURGOGNE-FRANCHE-COMTE 886172 895198 6641548 6622537 (POLYGON ((886244.1999999511 6641236.40000158,...
1 218 42 84 DEPARTEM0000000000000002 SAINT-ETIENNE LOIRE AUVERGNE-RHONE-ALPES 795655 808646 6521581 6482549 POLYGON ((764370.2999999805 6544751.000001852,...
2 540 76 28 DEPARTEM0000000000000003 ROUEN SEINE-MARITIME NORMANDIE 550942 562355 6952842 6928721 POLYGON ((511688.8000000215 6966776.900000649,...
3 024 89 27 DEPARTEM0000000000000004 AUXERRE YONNE BOURGOGNE-FRANCHE-COMTE 748211 742447 6750855 6744261 POLYGON ((709449.099999998 6765661.000001209, ...
4 066 68 44 DEPARTEM0000000000000005 COLMAR HAUT-RHIN ALSACE-CHAMPAGNE-ARDENNE-LORRAINE 1016174 1024125 6763894 6784581 POLYGON ((992779.0999999393 6768618.20000122, ...

In [18]:
json = gdf.to_json()

In [19]:
with open("DEPARTEMENT/dep.geojson", "w") as f:
    f.write(json)

In [20]:
from bokeh.io import show, output_notebook
from bokeh.models import GeoJSONDataSource, HoverTool, LinearColorMapper
from bokeh.plotting import figure
from bokeh.palettes import Viridis256

output_notebook()


Loading BokehJS ...

In [22]:
with open(r'DEPARTEMENT/dep.geojson') as f:
    geo_src = GeoJSONDataSource(geojson=f.read())

In [23]:
cmap = LinearColorMapper(palette=Viridis256)

In [25]:
type(GeoJSONDataSource)


Out[25]:
bokeh.model.Viewable

In [24]:
TOOLS = "pan,wheel_zoom,box_zoom,reset,hover,save"

p = figure(title='France Département', tools=TOOLS, x_axis_location=None, y_axis_location=None, width=500, height=500)
p.grid.grid_line_color = None

p.patches('xs', 'ys', fill_alpha=0.7, fill_color={'field': 'CODE_DEPT', 'transform': cmap},
         line_color='black', line_width=0.5, source=geo_src)

hover = p.select_one(HoverTool)
hover.point_policy = 'follow_mouse'
hover.tooltips = [('Département:', '@NOM_DEPT')]

show(p)