Карта Folium Chropleth отображает оттенки серого вместо настоящих цветов тематической карты c - PullRequest
2 голосов
/ 23 марта 2020

У меня проблема с тем, что моя карта choropleth не отображается правильно.

У меня есть куча данных о поездке по городу Чика go, и я хотел бы создать картографическая карта по переписному участку. Я проверил, что в файле geo json функция key_on имеет значение "geoid10", и убедился, что все участки переписи при перехвате совпадают.

Я также обеспечил соответствие типов данных ключа в гео * Файл 1034 * и фрейм данных совпадают (оба они являются объектами)

Тем не менее, моя картограмма отображает черный / серый тон вместо карты с правильно настроенным тоном.

Это мой код :

# Import packages
import pandas as pd
import geopandas as gpd
import folium

# Load in GeoJSON file, because works with Folium
geosjon_file = "Boundaries - Census Tracts - 2010.geojson"
chicago_census_tracts = gpd.read_file(geosjon_file)

# Pickup by census tract
pickup_by_censustract = pd.read_csv("pickup_demand_by_censustract_test.csv")

# Convert Pickup Census Tract to dtype: object, as key_on object in geosjon_file is also an dtype: object
pickup_by_censustract["Pickup Census Tract"].astype(str)

# Creating Chicago map with Folium
chicago_map = folium.Map(
    location=[41.881832, -87.623177],
    zoom_start=9)
#folium.TileLayer("CartoDB positron", name="Light Map", control=False).add_to(chicago_map)

# Overlaying Chicago map with bounderies of census tracts
folium.GeoJson(chicago_census_tracts).add_to(chicago_map)

# Creating Choropleth
folium.Choropleth(
    geo_data=chicago_census_tracts,
    name="choropleth",
    data=pickup_by_censustract,
    columns=["Pickup Census Tract", "Count"],
    key_on="feature.properties.geoid10",
    fill_color="YlGn",
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name="Ride-hailing demand"
).add_to(chicago_map)

folium.LayerControl().add_to(chicago_map)
chicago_map

Это текущий вывод в моем ноутбуке Jupyter:

enter image description here

Несмотря на то, что я считаю, что я соответствовал key_on правильно работать с фреймом данных, я все еще думаю, что проблема все еще заключается в правильном сопоставлении файла geo json с фреймом данных.

Пожалуйста, найдите код, данные и файл geo json здесь: https://github.com/Doncorleone1018/Chicago-choropleth

  • Текущая python версия: 3.7.4
  • Текущая версия фолиума: 0.10.1

1 Ответ

1 голос
/ 23 марта 2020

Просто измените эту строку:

pickup_by_censustract["Pickup Census Tract"].astype(str)

на:

pickup_by_censustract["Pickup Census Tract"] = pickup_by_censustract["Pickup Census Tract"].astype(str)

и вы получите:

enter image description here

...