python - 带叶的 Choropleth
问题描述
我正在尝试使用 folium 创建等值线图。尽管我想创建世界地图,但我使用以下站点作为指南。
https://python-graph-gallery.com/292-choropleth-map-with-folium/
我从这里得到了 JSON 文件:
https://github.com/python-visualization/folium/blob/master/examples/data/world-countries.json
我的“test4”数据是这样的:
Country_0 Count_0
0 United States of America 18425
1 United Kingdom 3070
2 France 2705
3 Canada 1498
4 Japan 1493
5 Italy 1471
6 Germany 1418
7 Russia 800
8 India 783
9 Spain 601
10 Australia 506
11 Hong Kong 468
12 South Korea 457
13 Sweden 396
14 Finland 324
15 China 300
16 Belgium 299
17 Denmark 297
18 Brazil 262
19 Poland 245
20 Mexico 236
21 Netherlands 226
22 Argentina 211
23 Czech Republic 163
24 Austria 151
25 Ireland 135
26 Turkey 134
27 Greece 131
28 Norway 124
29 Hungary 119
30 Switzerland 99
我的代码在这里:
import folium
country_count = pd.read_csv('test4.csv')
country_geo = os.path.join('world-countries.json')
m = folium.Map(location=[0, 0], zoom_start=2)
m.choropleth(
geo_data=country_geo,
name='choropleth',
data=country_count,
columns=['Country_0', 'Count_0'],
key_on='feature.id',
fill_color='YlGn',
fill_opacity=0.7,
line_opacity=0.2,
legend_name='Test'
)
folium.LayerControl().add_to(m)
我收到以下错误:
JSONDecodeError: Expecting value: line 7 column 1 (char 6)
解决方案
这是json文件。我假设您只是右键单击并从https://github.com/python-visualization/folium/tree/master/examples/data执行了“将链接另存为...”
返回https://github.com/python-visualization/folium/blob/master/examples/data/world-countries.json
单击Raw
选项卡,然后当它出现时,您可以右键单击然后“另存为..”
我还要注意,您需要稍微更改您的代码。如果您查看 json 文件,您会看到存储的国家/地区:
这与他们使用美国国家 json 给出的示例不同,后者具有功能和 id 下的状态。
所以请注意这里是功能、属性、名称赋予国家价值。所以,为key_on
属性调整它:
import pandas as pd
import os
import folium
country_count = pd.read_csv('test4.csv')
country_geo = os.path.join('world-countries.json')
m = folium.Map(location=[0, 0], zoom_start=2)
m.choropleth(
geo_data=country_geo,
name='choropleth',
data=country_count,
columns=['Country_0', 'Count_0'],
key_on='feature.properties.name',
fill_color='YlGn',
fill_opacity=0.7,
line_opacity=0.2,
legend_name='Test'
)
folium.LayerControl().add_to(m)
m.save('#292_folium_chloropleth_country.html')
推荐阅读
- javascript - 如何在 yaml 脚本中获取 curl 响应 JSON?
- java - 使用 Jackson 库创建 JSON 反斜杠 + 斜杠
- c# - How to make PATH inside Region clickable in UWP
- azure - 权限被拒绝异常 Azure CLI
- c# - 线程循环的异步基础
- scala - 将键从多级 Hashmap 收集到 Scala 中的有序 ListBuffer
- android - 当应用程序处于 LockTask(KIOSK 模式)时,媒体播放器不播放任何音频
- javascript - 为什么我不能将存储在我的 s3 存储桶中的这个 geojson 与 amcharts 一起使用?
- reactjs - 使用 React 单击该区域时,重定向到 Google 地图上的位置
- linux - 为什么在将 rpmbuild 用于 apr-util-1.6.1.tar.bz2 时,由于缺少文件 apr_dbd_odbc* 而出现错误?