1 G& C) b% s+ u' n4 y Choropleth 等值线图. ~. N/ N* z. T3 J! s
import pandas as pd #读取数据
e: u' V; f$ O) J \! I a* W from folium import Map,Choropleth,CircleMarker #用到的包& J* p" P7 u. ^0 G
: |; B2 r: N5 [6 G# Y( t #包含省的中国地图json+ b+ t% [. ^9 O) B+ E" N
china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json
/ O3 b8 D9 B" c9 Q l% b9 B+ G #读取用到的面积数据
! q6 N, k r8 I datad = pd.read_csv(Desktop/square.csv,index_col=index)9 ?: J' Z% G5 O0 M9 [
) H1 o. q/ C5 B$ I0 H7 B w) j
6 S, {& p' R# ]8 B$ [9 s, A m=Map(tiles=Stamen Toner) #地图风格4 Z5 @$ S! y5 `: _$ O! J( ?
# f! s; x& F- f- b1 y
Choropleth(china_geo, #选择json }% N i* j) G2 x. T& `7 _ P
data = datad, #数据
" L) `8 ?$ q. o3 o6 h columns = [province,square], #列,第一个为key,第二个为value
9 u4 C! {0 ~+ r( x key_on = feature.properties.name,#匹配到json# ]- q' r8 O! }' p+ I
fill_color = RdPu, #颜色3 u9 e8 j+ A1 D
fill_opacity = 0.8, #填充透明度& h6 O" u7 ]" [; j; M2 U" F
line_opactity = 1, #线透明度
' w5 a0 C* _& }9 n4 l- J line_weight = 1, #线宽
( i. [- Z+ x; K$ N: ~ legend_name = 面积 #图例
+ P/ f t9 e$ K K; y( I& t' r0 `' {: Y! ~4 I8 J
).add_to(m)/ B" u+ B6 S& Y5 A: @0 M
CircleMarker(location = [39.907518, 116.397514], #坐标点' s$ Y z/ a3 a9 z# h% E+ I* k
radius = 10, #半径
$ Q5 Z& X& o, `' b5 _. e fill = True, #填充7 L$ P, i* Y0 n6 r/ s; {+ h
popup = This is beijing, #弹窗) H+ O3 n* c4 Z& Z4 G, N+ w( D1 v- u
weight = 1 #circlemarker线宽
( F8 O2 H1 u3 V. [9 B ).add_to(m)- f6 r, L D5 ]
m.fit_bounds(m.get_bounds())
: E) A/ g. s+ M' {- U m) i/ ~' ~) T" x% u0 F
" o0 ]9 ?$ i; B" ~1 b$ @ ! E, ^7 s, }1 Y* ?. ?$ o$ D
数据地址: square.rar - 蓝奏云
' [4 m8 z' { s7 l, a 两个重要的网站 ; E- m9 X, s- b5 ` X6 z
手动绘制geojson
; @3 @ m; ^+ A
1 O6 K3 X. ~# q2 F/ k 目前更新的geojson 4 x9 \: `: P6 H; y U- m& B
' j j, k" o' j; m; L
geojson格式
6 a# v r: H: n8 T {
- ]% Q* h" v$ S "type": "FeatureCollection",
0 a* U( d# T; J7 R* y "features": [# J5 `9 M; X6 D1 c" y; j0 x
{$ V5 J2 S T) ^0 E7 e4 J" d
"properties": {"name": "Alabama"},
1 w9 _" `9 X0 k8 Y9 z* ] "id": "AL",0 n7 K+ w0 J' e, }: z J3 A
"type": "Feature",
" K7 _# K; z& }% t: X "geometry": {
/ G. ?4 I o9 x! q, [ "type": "Polygon",
' h1 E8 Q' j( D; Y "coordinates": [[[-87.359296, 35.00118], ...]]
" ?7 [% f& v8 f }7 R( H9 ~& b# ?$ B$ s6 J
},) n, s( G" S9 ]; O3 W, _9 B
{7 a; K k% u3 U: A1 g
"properties": {"name": "Alaska"},& D# q4 \$ D; b# }1 ?9 x
"id": "AK",
3 |: L8 r a, ?8 Q1 r8 ^ "type": "Feature",
- [/ g9 @# W+ M- Q( l8 s6 Q "geometry": {
/ u6 x5 l* F5 J* R& e3 @ "type": "MultiPolygon",
, O5 f# Y v/ Y+ o, K "coordinates": [[[[-131.602021, 55.117982], ... ]]]
6 M2 t3 D) u4 s6 ~" }* J1 W }$ I/ i0 d9 y' |
},
* T. k6 T: v% e4 t ...1 y7 o% h9 }; j' w7 w% u
]
/ e7 E: {: N& u7 F; D+ U" @7 ] }% w# m8 N ]5 z
; v, z. S L) D) E 读取本地的json文件
3 X; K) I: A) C& J/ i f = open(zhengzhou.json), ?, x: l) ], |
t = json.load(f)7 M# t5 t9 L8 I: ]( w
; h: z1 I9 |% |$ ~9 ?$ L 读取网络json 0 T/ \0 k+ i2 @- ~/ V
url = (
4 a* `$ W' j3 p" F1 v "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"4 y/ D" ^( }8 j- R1 x1 x* c7 F
)
, x2 B5 D% G4 k. w0 r& G us_states = f"{url}/us-states.json"& q6 K" ^6 P" i% i/ W; A
- Y z A( n2 |& R) L: |
geo_json_data = json.loads(requests.get(us_states).text)
: ^! O" B, b. ?9 B& g1 G' D1 R
8 g& E. Q+ O6 q( X& B$ s5 y# D3 E8 M; U
0 R y. S8 @2 z+ \5 _0 l3 J
. x% i' ^; L1 U. W9 q \. ~
9 O% i4 Z J* a! V
|