繁体   English   中英

用正确的颜色为Choropleth地图着色#Python

[英]color a Choropleth map with the right colors #Python

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from mpl_toolkits.mplot3d import Axes3D
import seaborn as sns
import folium
import geojson

data= pd.read_csv('dans-ma-rue.csv', delimiter=';')
data=data.replace(to_replace='Mobiliers urbains dégradés (arrachés, cassés, tordus, bancals, en panne... )', value='Mobiliers urbains dégradés')

导入地图并获取geo_json文件:

macarte = folium.Map(location=[48.86,2.35], zoom_start=12.5,)
ARDT = r'arrondissements.geojson'

这是geo Json文件的链接: https ://data.opendatasoft.com/explore/dataset/arrondissements@parisdata/ ? flg = fr

# calculating total number of incidents per district
data2 = pd.DataFrame(data['ARRONDISSEMENT'])
data2 = pd.DataFrame(data2['ARRONDISSEMENT'].value_counts().astype(float))
data2.to_json('crimeagg.json')
data2 = data2.reset_index()
data2.columns = ['ARRONDISSEMENT', 'Nombre']
data2['ARRONDISSEMENT']=data2['ARRONDISSEMENT'].astype(int)
data2['ARRONDISSEMENT2']=data2['ARRONDISSEMENT'].apply(lambda x : str(x)+"ème Ardt")

然后创建地图:

macarte.choropleth(geo_data = ARDT,
    data = data2,
    columns = ['ARRONDISSEMENT','Nombre'],
    key_on = 'feature.properties.ARDT',
    fill_color = 'YlOrRd',
    fill_opacity = 0.7,
    line_opacity = 0.2,
    legend_name = 'Number of incidents per district')

display(macarte)

该代码为我提供了一个包含所有地区但都具有相同颜色的地图。 非常感谢你 !

迪米特里

我认为key_on参数设置错误。 它应与geojson文件中的内容匹配。 里面有没有ARDT属性properties 您应该使用属性c_ar唯一地标识区域(“ arrondissment”)。

macarte.choropleth(geo_data = ARDT,
    data = data2,
    columns = ['ARRONDISSEMENT','Nombre'],
    key_on = 'feature.properties.c_ar',
    fill_color = 'YlOrRd',
    fill_opacity = 0.7,
    line_opacity = 0.2,
    legend_name = 'Number of incidents per district')

我遇到了与您相同的问题, 这款Jupyter笔记本电脑帮助了我。

注:根据choropleth功能是旧的,将被弃用,并且GeoJson应该是使用代替。 对我来说,他们俩最后都工作了。

我希望这有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM