Path: blob/main/tests/snapshots/modules/issue_1989.py
1602 views
import io12import branca3import geopandas4import pandas as pd5import requests67import folium89response = requests.get(10"https://gist.githubusercontent.com/tvpmb/4734703/raw/"11"b54d03154c339ed3047c66fefcece4727dfc931a/US%2520State%2520List"12)13abbrs = pd.read_json(io.StringIO(response.text))1415income = pd.read_csv(16"https://raw.githubusercontent.com/pri-data/50-states/master/data/income-counties-states-national.csv",17dtype={"fips": str},18)19income["income-2015"] = pd.to_numeric(income["income-2015"], errors="coerce")2021data = requests.get(22"https://raw.githubusercontent.com/python-visualization/folium-example-data/main/us_states.json"23).json()2425states = geopandas.GeoDataFrame.from_features(data, crs="EPSG:4326")26statesmerge = states.merge(abbrs, how="left", left_on="name", right_on="name")27statesmerge["geometry"] = statesmerge.geometry.simplify(0.05)2829statesmerge["medianincome"] = statesmerge.merge(30income.groupby("state")["income-2015"].median(),31how="left",32left_on="alpha-2",33right_on="state",34)["income-2015"]35statesmerge["change"] = statesmerge.merge(36income.groupby("state")["change"].median(),37how="left",38left_on="alpha-2",39right_on="state",40)["change"]4142statesmerge["empty"] = None4344colormap = branca.colormap.LinearColormap(45vmin=statesmerge["change"].quantile(0.0),46vmax=statesmerge["change"].quantile(1),47colors=["red", "orange", "lightblue", "green", "darkgreen"],48caption="State Level Median County Household Income (%)",49)5051m = folium.Map(tiles=None, location=[35.3, -97.6], zoom_start=4)5253popup = folium.GeoJsonPopup(54fields=["name", "change"],55aliases=["State", "% Change"],56localize=True,57labels=True,58style="background-color: yellow;",59)6061tooltip = folium.GeoJsonTooltip(62fields=["name", "medianincome", "change", "empty"],63aliases=["State:", "2015 Median Income(USD):", "Median % Change:", "empty"],64localize=True,65sticky=False,66labels=True,67style="""68background-color: #F0EFEF;69border: 2px solid black;70border-radius: 3px;71box-shadow: 3px;72""",73max_width=800,74)7576g = folium.GeoJson(77statesmerge,78style_function=lambda x: {79"fillColor": (80colormap(x["properties"]["change"])81if x["properties"]["change"] is not None82else "transparent"83),84"color": "black",85"fillOpacity": 0.4,86},87tooltip=tooltip,88popup=popup,89).add_to(m)9091colormap.add_to(m)929394