首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用正确的颜色给Choropleth贴图上色#Python

用正确的颜色给Choropleth贴图上色#Python
EN

Stack Overflow用户
提问于 2017-12-06 16:44:27
回答 1查看 1.1K关注 0票数 1
代码语言:javascript
复制
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文件:

代码语言:javascript
复制
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

代码语言:javascript
复制
# 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")

然后创建地图:

代码语言:javascript
复制
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)

代码给了我一张地图,上面有所有的地区,但都有相同的颜色。非常感谢!

迪米特里

EN

回答 1

Stack Overflow用户

发布于 2018-10-17 03:32:04

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

代码语言:javascript
复制
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')

你和this jupyter notebook帮我的时候我也有同样的问题。

注意:根据this的说法,choropleth函数太旧了,将被弃用,应该使用GeoJson。对我来说,他们最终都成功了。

我希望这能帮到你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47670091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档