收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

Python画出好看的地图基于folium

[复制链接]
& t$ v9 r( H; q- n# f

Choropleth 等值线图

; l" L+ H9 T, y8 |. _: h7 V3 m
import pandas as pd #读取数据4 c; r; y0 t) w+ |! G8 A- N from folium import Map,Choropleth,CircleMarker #用到的包 $ J, x$ f0 K! T5 P# Q3 M/ h! K
7 l) @; d; s* L# }
#包含省的中国地图json* w2 i5 f( @& Y4 f china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json 0 v! D! l% \8 z. \' t; H2 ? #读取用到的面积数据 % K4 a* i8 a: b% @ p7 X datad = pd.read_csv(Desktop/square.csv,index_col=index)# Y" ?$ p+ J6 |
# I( e0 x* q S3 p" R- R
, W% K* P% v( _
m=Map(tiles=Stamen Toner) #地图风格 ( _2 y1 o K$ I4 ~2 k0 }. K. n9 k$ Z ; z* K* H' x# s3 q+ B# A* b8 ` Choropleth(china_geo, #选择json 8 a8 p! `" m: X% i: X- f data = datad, #数据. p& }- T/ k+ p% L1 C columns = [province,square], #列,第一个为key,第二个为value- j) j0 \# B/ ]; q key_on = feature.properties.name,#匹配到json 5 d1 d7 e: M* d1 s fill_color = RdPu, #颜色# u) {4 E. r+ o8 H5 } fill_opacity = 0.8, #填充透明度 " y8 S6 P0 i' ~9 `/ Q line_opactity = 1, #线透明度 F0 B9 Y& u5 I" W+ K% j line_weight = 1, #线宽. ^! p1 ~7 P/ i0 f$ o# B legend_name = 面积 #图例& D1 e1 Q6 O' J% H! W+ O 1 u' }7 g' f9 ~. t. O7 v ).add_to(m)1 p. M5 e8 o8 L2 w t1 h. I5 _ CircleMarker(location = [39.907518, 116.397514], #坐标点* |/ Z/ L7 l) c8 i0 ?5 v; L3 W* k# | radius = 10, #半径' @" W9 w( t/ p0 G4 z fill = True, #填充 7 t e2 M$ O9 k) G9 W" C0 P popup = This is beijing, #弹窗 8 s, S) l4 a' t+ j weight = 1 #circlemarker线宽 ' Y/ _6 y& @3 K) h3 b6 a ).add_to(m)# n/ H3 N \1 F- X& ?0 }0 G ` m.fit_bounds(m.get_bounds()) ' V: ^3 v" t: d1 s- d, j% Z7 m m 4 p, I" | V! E) w. H
) G. y2 ~& S: M9 C% I! B M
' d+ p4 F$ @, }4 c# T3 V# H

数据地址: square.rar - 蓝奏云

0 u8 Z t' S# X. P, F: y s

两个重要的网站

5 ?4 }5 J7 ~( D7 F9 e

手动绘制geojson

: A# Q" F2 e w. Y; a; h, h . I5 O1 C& Q r7 I9 K: w4 u

目前更新的geojson

' V6 H) Q9 Z, B, I8 t ' T$ x9 L! ^, q% w9 k% L( r

geojson格式

3 g; r0 N; z6 F3 }) o
{( e8 s' q, c* q5 y2 J3 } "type": "FeatureCollection", : ~) P, Y2 `( M8 T$ { "features": [( K* x( e- w4 z) Q { & \5 `+ b( J( W* I "properties": {"name": "Alabama"}, # ?% e* m( y+ }& E4 H. v "id": "AL", ( G; u& ]' P$ C5 W( |* e! Y "type": "Feature",$ b6 D p! \" `' P0 K* z "geometry": {" z( z9 z9 U5 }" D "type": "Polygon", . Q6 n& I5 ^/ `- }9 i1 K( D "coordinates": [[[-87.359296, 35.00118], ...]]3 V, o- Z6 M( a }- a! j. w1 p- K' I: s, B" y# }; l },' ]8 I# W% I' ]3 v" p8 V# w4 ~ { 4 S7 V! c C( c; z) H7 _ "properties": {"name": "Alaska"}, ; \ W% ?, B5 b F# J "id": "AK",4 ?6 C0 G/ P0 j* w1 y& j- w "type": "Feature",) J7 n! T% n% P4 M "geometry": { ( g( U3 T$ ]1 G- \. D) F "type": "MultiPolygon",7 {" {9 X9 X8 x) \& X) O% d "coordinates": [[[[-131.602021, 55.117982], ... ]]] 2 j9 o8 J" H6 t3 ]' Y6 K' i } ) d8 ?% F7 z# W4 { }, 2 e/ K2 W) \1 V6 {8 y/ I ... 6 ~+ S/ E) P& D2 x# u/ N$ U9 P; @) ~" P- ` ] 1 {+ P$ u3 ?9 P( ]5 g @2 H3 S2 E% ~ }/ i5 Y8 [7 M' h+ [( x0 p
: u, a4 W6 K) ~: p7 b n$ e$ ]% \

读取本地的json文件

: n0 l) d$ \; S3 j0 [9 A& g
f = open(zhengzhou.json)1 J y7 H( a/ F t = json.load(f)& i; v/ w/ d" p
% ~: `, t9 b2 q; o; T8 ~

读取网络json

* D+ J2 W1 ~& V* W5 D
url = ( } l. [" h- V& Y9 c+ E4 I "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data", \7 J6 D& R Y0 C$ R$ J" E8 H5 A3 r ) + e8 k9 ?& \" Q& \' A7 T- u) `+ | us_states = f"{url}/us-states.json" : q$ ~8 E! W" v( x* ~2 U* R2 V0 r3 Y0 F1 h geo_json_data = json.loads(requests.get(us_states).text)! k1 ^! r" u$ r. a
$ w* x) b( m8 P& V' J# | / V) Y$ A* `' a5 d, s& F5 O3 ~ * `) v' k# k' _ ^ - z! g1 q( }" y; R ) u( ?4 Z+ A8 |+ a1 P
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
华德地毯
活跃在2026-4-5
快速回复 返回顶部 返回列表