与folium - python的等值线图

问题描述 投票:1回答:1

我很难做巴西国家Im的等值线图使用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使用的坐标有关)

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

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

python choropleth folium
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.