python - 等值区域图未显示输出中的颜色变化

标签 python pandas geojson choropleth folium

即使在等值区域与geo_data链接并且数据框中的数据参数链接后,我的输出 map 中也没有出现任何颜色变化。 >等值线统计法

我正确地提供了“key_on”参数和“columns”参数。我已从数据框中删除了所有 NULL 值。

import pandas as pd
from pandas import read_csv
import folium
import os
import webbrowser

crimes = read_csv('Dataframe.csv',error_bad_lines=False)

vis = os.path.join('Community_Areas.geojson')
m = folium.Map(location = [41.878113, -87.629799], zoom_start = 10, tiles = "cartodbpositron")
m.choropleth(geo_data=vis, data = crimes, columns = ['Community Area', 'count'], fill_color = 'YlGn', key_on = 'feature.properties.area_numbe')
folium.LayerControl().add_to(m)
m.save('map.html')
webbrowser.open(filepath)

我期望得到彩色分区图,但实际输出完全是灰色的。我将在下面的链接中添加代码、数据、输出。

代码链接: https://github.com/rahul0070/Stackoverflow_question_data

数据

,Community Area,count
0,25.0,92679
1,8.0,48751
2,43.0,47731
3,23.0,45943
4,29.0,44819
5,28.0,42243
6,71.0,40624
7,67.0,40157
8,24.0,39680
9,32.0,38513
10,49.0,37227
11,68.0,37023
12,69.0,35874
13,66.0,33877
14,44.0,32256
15,6.0,31043
16,26.0,30565
17,27.0,28113
18,61.0,27362
19,22.0,27329
20,46.0,26897
21,19.0,26198
22,30.0,24362
23,53.0,22645
24,42.0,21284
25,7.0,21047
26,1.0,19932
27,3.0,19799
28,15.0,17820
29,38.0,17660
30,2.0,17213
31,73.0,17071
32,16.0,15926
33,40.0,14943
34,58.0,14143
35,31.0,13934
36,63.0,13203
37,70.0,12980
38,35.0,12965
39,14.0,12714
40,77.0,12612
41,21.0,12587
42,75.0,11156
43,65.0,10812
44,51.0,10348
45,56.0,10176
46,4.0,9984
47,33.0,8987
48,60.0,8982
49,76.0,8938
50,20.0,8922
51,17.0,8536
52,41.0,8076
53,48.0,7823
54,5.0,7761
55,45.0,7485
56,39.0,7466
57,52.0,7150
58,54.0,6777
59,10.0,6372
60,11.0,6072
61,34.0,6053
62,62.0,5736
63,50.0,5730
64,59.0,5695
65,57.0,5244
66,64.0,5194
67,72.0,4962
68,37.0,4908
69,13.0,4570
70,36.0,3359
71,74.0,3145
72,55.0,3109
73,18.0,3109
74,12.0,2454
75,47.0,2144
76,9.0,1386

最佳答案

阅读数据后,我发现您没有将“社区区域”列的数据类型转换为字符串类型,因为geojson文件包含字符串形式的键。因此键和列的数据类型应该匹配。

这是一个完整的解决方案来回答您的问题

# importing libraries
import pandas as pd
from pandas import read_csv
import folium
import os
import webbrowser
# read the data
crimes = read_csv('Dataframe.csv',error_bad_lines=False)
# convert float to int then to string
crimes['Community Area'] = crimes['Community Area'].astype('int').astype('str')
# choropleth map
vis = 'Community_Areas.geojson'
m = folium.Map(location = [41.878113, -87.629799], zoom_start = 10, tiles = "cartodbpositron")
m.choropleth(geo_data=vis, data = crimes, columns = ['Community Area', 'count'], fill_color = 'YlGn', key_on = 'feature.properties.area_num_1')
folium.LayerControl().add_to(m)
m.save('map.html')
webbrowser.open('map.html')

如果您发现难以理解代码的任何部分,请发表评论。对于 key_on 参数,您还可以尝试 feature.properties.area_numbe

关于python - 等值区域图未显示输出中的颜色变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55563700/

相关文章:

python - 将数据帧拆分为多个,具有重叠行

javascript - 从 geojson 获取最大值和最小值

geojson - 如何根据 map 范围将 GeoJSON 数据动态加载到 OpenLayers 3.5.0 map 图层中?

python - Python 中的 MRO 未按预期工作

java - 使用 Tomcat 8 servlet 启动 Jython 控制台

python - 在 PyQt 中动态添加和删除小部件

python - 用 pandas 解析 CSV 并转换为 dict 结果仅在最后一行出现 KeyError

Python:Unicode 源文件在字符之间添加空格(实际上是空字节)

python - 检测几乎重复的行

javascript - 无法将坐标解析/投影到 JSON 上