0 Q4 q. Z" q; H! w Choropleth 等值线图0 b, J- Y/ Y! E
import pandas as pd #读取数据 ]# f: C" p1 ~- j8 { P4 k3 A
from folium import Map,Choropleth,CircleMarker #用到的包
- N6 e: P! X) h& J / B4 F& p- G! g9 a
#包含省的中国地图json; @5 Y& ?( [0 z& m
china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json5 d; `# d3 o: Q7 T, l7 `" \
#读取用到的面积数据
i) Y) d4 F1 A% Y2 |, f datad = pd.read_csv(Desktop/square.csv,index_col=index)& y4 w$ p% T% O7 ^
" K4 U0 ]7 F- y, F
# Y+ P& ]- l9 E% ^ y' P
m=Map(tiles=Stamen Toner) #地图风格
1 U) s* v. r' O# ?. R* a7 y# n7 F8 n# t* C& p' T. b: F! _
Choropleth(china_geo, #选择json% m, P' H' R& F
data = datad, #数据
8 w3 j" ]) F1 `+ ^* n+ U columns = [province,square], #列,第一个为key,第二个为value
6 ?3 a9 w0 s( b, h) Z9 d key_on = feature.properties.name,#匹配到json
% g9 P% z; p* r% ~3 b fill_color = RdPu, #颜色
6 q* I. r: @( I! w3 Y( f fill_opacity = 0.8, #填充透明度
9 x2 z7 D0 l2 p2 I, D& w; y line_opactity = 1, #线透明度0 _/ D6 L: L" v; v' B1 C6 m
line_weight = 1, #线宽
; M) j# c# h% o# x# g& p( l legend_name = 面积 #图例
I; Z* d2 z/ P6 e- `, k! O4 B
3 u7 q; X& o3 ~* C1 |% d ).add_to(m), E# A* Y, Z, d- E
CircleMarker(location = [39.907518, 116.397514], #坐标点& z' z8 z& Q7 Q/ j
radius = 10, #半径) N2 P8 l: ]5 M6 S
fill = True, #填充
. y, a# i( q: j popup = This is beijing, #弹窗% s2 ` s2 M$ B1 R+ E2 I5 \
weight = 1 #circlemarker线宽 ! B5 W) g" n4 E7 o
).add_to(m) @2 ]+ n2 h4 U- g4 J' a7 j
m.fit_bounds(m.get_bounds())
" ~! X. q8 G& ~6 c. Y9 v m
6 ~- r k) r. U, D% L T
, _" |$ U% Q2 H* T/ H9 c
5 A. X/ ~# S* T2 J: i 数据地址: square.rar - 蓝奏云
3 j3 t+ W3 m& v4 n 两个重要的网站
9 B! D; o2 f) i- s2 w 手动绘制geojson
% i% v3 [' e# C$ O A
! G. `; z, k, I1 b+ J5 t 目前更新的geojson 8 m1 s+ m3 {5 e; g. O
( {( |! R0 X- @2 D1 g3 r
geojson格式
/ L. H3 B. G$ `, B( N9 k1 e R {9 i* |7 U }" Y. ?; l
"type": "FeatureCollection",9 L! X1 j9 z5 y- t1 {1 B
"features": [
* ~6 @* r5 y) j G3 t9 T7 w$ @8 ? {' A+ s$ X" {7 \
"properties": {"name": "Alabama"},
/ w* Z" P1 _/ U) k% Q "id": "AL",4 ~1 ?0 K+ g- c4 j+ {
"type": "Feature",
$ B' }* S" ]9 O, `4 P. n" @: S "geometry": {
; j" }8 K* D4 F3 m "type": "Polygon",
$ F* x) \8 @' `' t8 N "coordinates": [[[-87.359296, 35.00118], ...]]! H" @4 O" @$ z
}7 @4 g) F0 C8 ]. z" l# L* H& y
},
7 Y+ Q2 h5 B" j- j {3 f" \4 d+ R$ B; K
"properties": {"name": "Alaska"},& e7 k3 _* G3 m0 U7 L
"id": "AK",
' ~9 q9 p8 h( q# } "type": "Feature",
$ f) P' ?. D, B$ T. ^; o& R; u "geometry": {! M: ]# N6 c2 Q6 n3 E) t
"type": "MultiPolygon",
/ H' y9 n5 I8 K "coordinates": [[[[-131.602021, 55.117982], ... ]]]
2 n" E' n5 e/ [5 h }% n' o! m" M% H: I) Y
},! o3 y" _% @: @$ K( P' Z+ w
...* Z% l& u5 E/ E0 i
], {! H, c& i1 c6 ]2 f* Y+ ]
}
3 P3 C" G; r, r h( h4 Y " ^. O5 K( }: K, }% g9 g |# D6 n
读取本地的json文件
3 Q$ J& M) \6 F5 b4 u6 j4 U+ Y9 M f = open(zhengzhou.json)& F2 y3 M* J2 V' i
t = json.load(f)1 H) H- R0 ?. x$ d' N U/ b
+ q, M3 t( r. D5 O" P& k( y 读取网络json . W/ {; t1 T4 c4 R
url = (
# [0 q: `3 }1 E "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"1 q/ b# a' ?) _6 O
)" A$ p& |) L" R% Q; h
us_states = f"{url}/us-states.json" i$ Q+ x5 o2 u9 m0 b% z
8 T( t* M% t4 F geo_json_data = json.loads(requests.get(us_states).text)
& i% Z C6 } U1 H3 }; @
6 z9 |0 }/ u; i0 [' L, @$ w7 q
; e" c: X' E" C* A9 ~2 _$ n; I9 l( V% z6 a7 M3 D) A
* C2 ^, O: q) p0 ?9 I4 X* h; ?/ [' R: N' K/ @
|