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
gdf = gpd.GeoDataFrame.from_file("DEPARTEMENT/DEPARTEMENT.shp")
gdf.head()
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, ... |
json = gdf.to_json()
with open("DEPARTEMENT/dep.geojson", "w") as f:
f.write(json)
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()
with open(r'DEPARTEMENT/dep.geojson') as f:
geo_src = GeoJSONDataSource(geojson=f.read())
cmap = LinearColorMapper(palette=Viridis256)
type(GeoJSONDataSource)
bokeh.model.Viewable
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)