与folium - python的等值线图

时间:2018-03-24 22:07:31

标签: python choropleth folium

我很难为巴西国家做一个等值线图 我使用folium库进行如下操作:

import folium
import json

with open('br-states.json') as json_data:
    d = json.load(json_data)

m = folium.Map(
    location=[-18.826592, -55.212558],
    zoom_start=4,
    tiles='OpenStreetMap')

m.choropleth(
geo_data=d,
name='choropleth',
data=new_data,
columns=['State', 'QTY'],
key_on='feature.id',
fill_color='YlGn',
fill_opacity=0.7,
line_opacity=0.2,
legend_name='Unemployment Rate (%)'
)
folium.LayerControl().add_to(m)

m

我的数据称为new_data

enter image description here

我不知道代码是否存在问题,或者我的json文件有br-state存在问题(可能与此文件的autor使用的坐标有关)

我得到地图但是地图没有转向等值地图

任何建议都将受到高度赞赏

1 个答案:

答案 0 :(得分:0)

我正在使用以下JSON文件:https://github.com/datalivre/Conjunto-de-Dados/blob/master/br_states.json 看一下代码,它与您的代码有些不同。您无需将JSON文件转换为字典。这是我得到的结果的图像。 folium br_states

import folium
import pandas as pd


new_data = pd.read_excel('new_data.xlsx')

state_geo = 'br_states.json'
mapa = folium.Map(
    location=[-15.77972, -47.92972],
    zoom_start=3
)

folium.Choropleth(
    geo_data=state_geo,
    name='Estados QTY',
    data=new_data,
    columns=['State','QTY'],
    key_on='feature.id',
    fill_color='YlOrBr',
    fill_opacity=0.7,
    line_opacity=0.1,
    legend_name='Insert legend'
).add_to(mapa)

folium.LayerControl().add_to(mapa)
mapa.save('index.html')
mapa