8 N. ^2 N: ], n* F0 L' V0 n9 E Choropleth 等值线图
+ q; y i0 C$ T import pandas as pd #读取数据# A! B2 u8 r* ~: ~
from folium import Map,Choropleth,CircleMarker #用到的包- |) P* C M" b. c; h; |, x* r4 Z
' c0 q6 b Z1 {# }0 l2 U' _1 W
#包含省的中国地图json, O q' o! Y9 o/ ~& ^( s0 U& R. p
china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json
& c6 R( n/ o; n( @, K4 M, L# M #读取用到的面积数据
+ x* a5 }5 H) x4 U! x2 T$ b datad = pd.read_csv(Desktop/square.csv,index_col=index)
: c8 U: q+ C7 Z8 t- e
% ]9 h. s- Y: D0 z
4 q3 u) ^- E" c) s8 p m=Map(tiles=Stamen Toner) #地图风格
5 l* s* i" A. I8 h' T) r+ e9 p
Choropleth(china_geo, #选择json
7 `) N$ B+ {1 O+ k data = datad, #数据
8 t3 `8 |* ^$ F, f" f) Y, z( W columns = [province,square], #列,第一个为key,第二个为value) N, K9 C- v6 ]% j! a! }
key_on = feature.properties.name,#匹配到json
. |1 G- G X1 A9 | fill_color = RdPu, #颜色
) q4 e) A$ F" F fill_opacity = 0.8, #填充透明度
. R' w0 o N6 D& ?5 \' p: t line_opactity = 1, #线透明度. C, g' d; d m/ C" w2 w4 v) M
line_weight = 1, #线宽- i" Y( m& J3 d ?" S5 [3 J) q l
legend_name = 面积 #图例/ G ^$ w( h8 ~3 m$ ?3 Y7 K) d2 x8 F: O
7 R3 E, ^4 Y0 \) ], b: e C ).add_to(m)
' Q! I. i6 H4 h7 O* d2 _4 ^3 K0 G# B CircleMarker(location = [39.907518, 116.397514], #坐标点
/ k$ g1 a% ?+ S) |% K+ b radius = 10, #半径
! T8 k$ e* f5 S fill = True, #填充8 q& h3 h; N+ G' ~8 Z; R2 t
popup = This is beijing, #弹窗2 G: p5 A2 i- Z; G: V
weight = 1 #circlemarker线宽
% k1 n# a% h4 Y& U ).add_to(m)
+ y' B. d i) c( b m.fit_bounds(m.get_bounds())
; n5 e, I5 M1 i0 t* s m5 K! z3 |" O3 Q0 s1 Y3 y4 O
/ m! s4 x9 F8 V- d' B( J3 m( d
; k7 b9 [" I7 l. q- t9 E1 \$ `& O
数据地址: square.rar - 蓝奏云
7 T8 p5 z7 e2 M5 e- C2 r1 D 两个重要的网站 1 A" D, ]: D5 I) }0 N: n- e
手动绘制geojson 0 q; f4 {: M% l' U" B
: r- I$ Y$ |- V! v- d6 f; C1 r
目前更新的geojson & E) e& V; k. O! d# Z3 I
V' `0 V7 i2 S/ L' O$ R geojson格式 ]6 x8 C) B( `0 `
{0 q m3 q3 g' [5 V% z% L) T
"type": "FeatureCollection",
- w5 [; y; }% P "features": [* b$ `* f8 ~4 V( e7 C4 ^; s
{
8 [! Q- Y& W" E) G "properties": {"name": "Alabama"},. q0 I) f) e3 w$ b% |9 e
"id": "AL",) a T9 I1 {, Q! k
"type": "Feature",
& j" K3 ^( b# d% o8 B# S9 J+ _1 Q "geometry": {
^1 H6 Y$ m5 _7 W4 f Z "type": "Polygon",
. n0 N" z/ L _6 g) R0 P7 N "coordinates": [[[-87.359296, 35.00118], ...]]' F( Z, t# Z# |5 }
}
' p+ G- _- I0 h# E+ h5 V9 v },5 t d( W, b% \
{
$ E3 E& g' ]& _% o6 o "properties": {"name": "Alaska"},
3 u/ K. J! B* S "id": "AK",4 U7 z/ k e6 }5 j# j' q
"type": "Feature",& L! m) d* C* Q# f1 f- q1 ~
"geometry": {, K$ H) U7 Z* U, \
"type": "MultiPolygon",
* W w- O5 d$ I; b: O1 o "coordinates": [[[[-131.602021, 55.117982], ... ]]]! C" |( _& @$ U1 e1 J3 M5 T' \ g
}/ s, J; Y$ U: ]+ m
},
* m$ S4 Q1 H/ J/ t, k1 I ...' Q$ m8 z$ I7 X& Z1 B
]7 V, e4 J" m4 ^5 W+ X# D1 z
}& f. J; U# M3 k) Y6 H) N! d- U
# c2 ~, f/ T% h N# ? 读取本地的json文件
3 ?. I. l0 s( I0 K, R f = open(zhengzhou.json)9 H$ m) N* m% g% d# h( [& i2 |
t = json.load(f)! m: V1 ^. G; A2 G' J# A
6 N( K" F3 p( M! ^/ K; u
读取网络json 4 Y1 A: m8 c: o
url = (% A! [9 {: q' W
"https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"5 v1 K V' L- l* e' P
)+ O& S& K; P, R/ p3 k
us_states = f"{url}/us-states.json"$ Q7 z4 W+ L5 k$ s% T2 T
0 _& F' p; D# |% b X' I1 U$ N
geo_json_data = json.loads(requests.get(us_states).text). G# j. ]9 l( @
: m! s+ G q1 k
. P. X* ]- ?, A4 Q) K8 r W5 a# G% @! w) @6 l" _! {6 p& F
4 t7 h3 O+ D$ W/ ~! u0 l% E! s5 j
1 E2 A5 O8 A M" ]! X! x& w
|