, Y f& |: L( N
Choropleth 等值线图
0 S' l/ V8 a* w import pandas as pd #读取数据
" z/ L% @, x+ E, R from folium import Map,Choropleth,CircleMarker #用到的包7 `- D" {. s+ @3 x ]+ x
9 U6 `# l9 K7 X3 C9 J #包含省的中国地图json
/ W, |/ k0 p3 ?3 _- Z2 }( k9 e' l) U china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json, M; n7 N& o- ], ^
#读取用到的面积数据( E5 G! T# ]1 N: Q
datad = pd.read_csv(Desktop/square.csv,index_col=index)9 ?* h; b3 b; h9 s5 i1 t
+ _1 f3 w: J' N0 G0 H$ l
4 p# Z0 Z- h7 Q; E8 j3 c m=Map(tiles=Stamen Toner) #地图风格
- m, f8 h2 ~3 H8 e: H7 a( c/ B' }3 Y H- s: Y! \* z5 y! j# s
Choropleth(china_geo, #选择json3 j* ]/ H6 _" D* T6 ?4 o
data = datad, #数据8 I# B2 T) Y y3 z w
columns = [province,square], #列,第一个为key,第二个为value$ D9 g" v* ~6 E% [1 l3 n( ]
key_on = feature.properties.name,#匹配到json
. l+ y9 W/ Q) O& Z0 K0 a7 s+ i8 q fill_color = RdPu, #颜色- D1 X, H0 y. C5 E; \5 h# q
fill_opacity = 0.8, #填充透明度
# _8 a, R- i# r) A: O. W+ s: m% l* b- ] line_opactity = 1, #线透明度/ x+ w0 A- ?! F
line_weight = 1, #线宽. Q( q4 h( _: |% t8 w4 ]/ }
legend_name = 面积 #图例: m. u. V3 v' c* {. X1 R
' V# o, u% l- P: ?" w0 _ ).add_to(m)
& ]% ?3 ^2 W0 |& ` CircleMarker(location = [39.907518, 116.397514], #坐标点% |7 ~) w% R- w" ?: f1 o# s
radius = 10, #半径" s4 Q, U& p8 j, l' P8 j7 n
fill = True, #填充
! L8 A+ Q- G7 e3 \ popup = This is beijing, #弹窗# x6 l6 v ]3 a: F# j {) j
weight = 1 #circlemarker线宽 2 l K& z* m7 H+ E
).add_to(m), L' }4 K8 J8 E4 n. L7 N
m.fit_bounds(m.get_bounds())
' q; a/ p! T! ^6 B3 y( m' b m( M. T1 j) y, P8 e! U
0 p$ B% Q( w7 J2 O
- w' @6 Z) q' X 数据地址: square.rar - 蓝奏云 / F# M3 u3 A: _; @/ i6 A, u" g
两个重要的网站
3 X5 X; i' U& H, w+ l 手动绘制geojson
8 H. K7 D% J K- t" i& j! L
4 d7 I$ D5 H* c# C/ L7 o 目前更新的geojson ! Q6 d/ ?1 h' g8 T0 n- m" H
[) Z, K& p& r# `! ?, R& x
geojson格式 3 ?4 u+ x( R5 w% Z6 u/ N
{; Y7 ]8 Q4 Q% l3 p$ R) g2 M
"type": "FeatureCollection",1 n* R! L' x& r: G& b2 o. R
"features": [8 P* P3 \- M; Y, L- w" W
{
' E& W& ]5 o7 G x2 i "properties": {"name": "Alabama"},$ }) O8 z8 b+ G# `! m3 A
"id": "AL",# s6 Q. v, n4 n0 V
"type": "Feature",% ]# f. A1 o0 Z* ]6 x
"geometry": {5 v4 a9 R2 r4 d2 P5 j$ t
"type": "Polygon",, k9 X2 X: ]1 o, ? {
"coordinates": [[[-87.359296, 35.00118], ...]]# S8 h' e% U( M
}) z; ~! R! H! Q% ?
},
6 h6 S; C8 ]' S( P0 f {
3 l- ~3 r7 B3 \ ^ h Q "properties": {"name": "Alaska"},' H* n# j R4 S1 R1 M. p1 s
"id": "AK",
- S: D4 L7 L' a; `( D) A( W7 d& W "type": "Feature",6 b" u! V% e; t- u( ~; [8 Z
"geometry": {
$ z7 ~4 Q$ [& B% n4 } "type": "MultiPolygon",. e& C& i1 N% ~8 B9 K# y
"coordinates": [[[[-131.602021, 55.117982], ... ]]]
, F' l$ x, k' p6 q; I }
2 g) G, y- h, |5 W4 Q* U' Y8 F1 T },
4 a9 B4 P2 F4 e* }; f ...- ~9 o, j8 ~! y, c
]0 v1 K4 R0 F( I8 l3 m
}
3 W) s" U5 O( F
4 I3 Q6 B; o$ j, S* l 读取本地的json文件
7 r. X0 ^# @' w; @ f = open(zhengzhou.json)" U5 ?: V: v& C- }
t = json.load(f)% r' a, c1 j+ E* o
, w: E; a H& H1 Z 读取网络json
6 _* T h/ g9 e4 ^ \' | url = (
4 M2 [' i, \0 j/ J0 }' q" }% |" Q "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"$ g0 D O$ @3 E0 @+ [6 G9 f* \6 G
)" X. }# i' |: V! q+ W0 |7 P! U
us_states = f"{url}/us-states.json"
; P2 A: I! D. s
# \# W/ a+ x n2 _7 z" j- J, e5 Q geo_json_data = json.loads(requests.get(us_states).text)6 V& d. ]. J: v7 S
0 L. ?- @9 F2 b! ^6 j8 e9 X% h2 [
1 b _ I2 D) D* }/ M1 i9 y& n8 b
/ a; b+ u* j) S0 g# {6 A$ ~9 [; r$ ?2 J
1 g, k5 }: b; A9 Z# Y6 f$ ^. j
|