) H$ y# n% Z& g1 M* M3 H1 Z+ X Choropleth 等值线图
: }8 R0 @5 _! c, t import pandas as pd #读取数据
2 R& a- ]2 k% t Q- t from folium import Map,Choropleth,CircleMarker #用到的包
/ ]- _( l1 [5 B- t
2 x; T/ L8 P, U #包含省的中国地图json
' Z9 E% H1 _0 k7 K( y china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json
7 F, G/ m& O0 b: R! l7 F$ i #读取用到的面积数据# Y' O+ X; G1 c d% c
datad = pd.read_csv(Desktop/square.csv,index_col=index)
4 g3 {' u4 @: b4 B * t2 f& |6 H+ U& M1 s
/ u! X; o1 p' m3 I' i3 x2 ~- c
m=Map(tiles=Stamen Toner) #地图风格* i6 i; J2 g* t! A+ ^# P( D
9 E/ g, |2 @) p7 j Choropleth(china_geo, #选择json
1 n" A% o( q1 s$ S data = datad, #数据
+ `7 ^! E G; S9 \$ ? columns = [province,square], #列,第一个为key,第二个为value* i: F; C y5 h; @' G) t% j' k
key_on = feature.properties.name,#匹配到json
. f$ f9 X# G* _" B fill_color = RdPu, #颜色( }$ e; O9 T2 r+ ^ _
fill_opacity = 0.8, #填充透明度( J7 I# Y ]6 j3 F+ y6 z2 d( I
line_opactity = 1, #线透明度
, W7 b; K! b/ S+ ? line_weight = 1, #线宽 U6 A1 ~) J$ n+ R) ^
legend_name = 面积 #图例
/ l. `7 Q% S! S! R$ F: Q' b/ e- }5 R, _% ]* O
).add_to(m)
% O2 ?$ _+ P h8 m; | CircleMarker(location = [39.907518, 116.397514], #坐标点
$ O7 Q5 c. m$ }' J9 \ radius = 10, #半径6 u4 ^- f5 L9 i& t$ F p
fill = True, #填充: V3 o E: _, k/ }7 D7 O
popup = This is beijing, #弹窗
5 w$ h) K- N+ d weight = 1 #circlemarker线宽 - {$ C; o7 G8 g$ ~. H% H. i3 \
).add_to(m)
1 o7 C( P0 Q' P# \8 c5 O X m.fit_bounds(m.get_bounds())
: m; K+ m; o: P m- y" @+ O4 [4 [' `- H; c5 v
) H8 C$ U1 x( \6 N$ C3 x; T
+ j1 ^5 F, U6 ?, I
数据地址: square.rar - 蓝奏云
5 _3 A, O, M% U \- O 两个重要的网站 + ]5 `4 P. k/ `
手动绘制geojson 3 C* K7 e/ X$ V& B2 C2 Y
2 [6 ^: f* [$ ^8 t, e, \& k6 I/ X 目前更新的geojson ; @: u$ w* m0 [, R- Y
9 K6 |. u2 Q3 Q7 ` geojson格式 2 _: f+ Y! g8 C& z/ K
{
. t, l$ y9 U& Q5 h Y "type": "FeatureCollection",6 ]' ^; O" o# y4 t, K. x7 V2 T
"features": [0 T' h$ d- v- z5 v+ [ O$ w
{6 {' d x5 _& S" D3 R% r) K# e
"properties": {"name": "Alabama"},
4 f% r3 n; z/ Z6 g v2 ^" E9 I9 ]' i# C "id": "AL",
9 E; V9 i6 S$ @6 d "type": "Feature",
3 I5 R0 W7 W; m" E3 A. Y9 F "geometry": {: ?& C6 ^; f$ `& q3 Y( n
"type": "Polygon",
# e8 U; I: e x' O6 u) L7 m5 w3 c "coordinates": [[[-87.359296, 35.00118], ...]]% }9 Y! R) `# X! c
}/ f4 ~: g0 y& K& ]
},
1 C4 A0 n: B; F$ }& a; J; Q& h {
) Y& \* z* P# d* I "properties": {"name": "Alaska"},0 g* |3 o6 N, W
"id": "AK",8 S/ n6 F4 e7 Q
"type": "Feature",
5 f9 ]; {* d8 l( ]- R5 U$ R M "geometry": {: v+ v- O( \% K3 K
"type": "MultiPolygon",
( p% b) U+ \; F) q; Y; j; h9 K; m3 d "coordinates": [[[[-131.602021, 55.117982], ... ]]]/ p4 C8 X6 S& A3 A! F, Q; M0 i
}
9 w4 I& P" N( t },
7 R S7 f+ Y8 A$ ^/ _8 b ...
; |6 [- w; [4 Z8 f ]
) u6 h& a* k% ? }
* b! a4 ?, }4 E1 R" L. a
- t* h& H7 z2 u& B5 j 读取本地的json文件 & I; T/ k1 k- m: s" |, Y8 l* Z4 x
f = open(zhengzhou.json)
# f- s4 u8 g4 v: y/ ] t = json.load(f), V5 r. R/ O6 `
5 p: O2 G/ h. ^4 K* ~0 Y$ b( b$ ~; \ 读取网络json
+ T. P# A9 I' o5 Z& ?- x& ~- Q url = (. m$ Z0 ]9 D9 r. x6 H8 A* Z% N
"https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"5 g5 K' }; h% E" z/ u
)
* V- s/ r- @5 L( \ us_states = f"{url}/us-states.json"/ K# g, P5 h+ S4 f4 s1 {: r/ ^
( ^3 k) W( r# b9 R5 S# N( n1 i. O geo_json_data = json.loads(requests.get(us_states).text)
* w! T. _$ r$ R ! Q# j- F; I4 ~ e# ?
, [* s# N/ @+ S
+ q# F# t1 O0 F
+ y, ?0 w! [, H' s* o$ G
K9 |% ~% k: j2 @ |