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

Python画出好看的地图基于folium

[复制链接]
* |* R O, T, D0 z6 X

Choropleth 等值线图

0 ?/ V2 P' A2 ^8 I
import pandas as pd #读取数据: Y2 N9 V6 K- ?0 D! _) m from folium import Map,Choropleth,CircleMarker #用到的包 ( C* j# k7 u/ u3 X5 z
2 x* u. ~* r8 U) s# t2 E
#包含省的中国地图json9 }4 [" i j5 ] china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json s# ?' v U) z0 @ #读取用到的面积数据 . T) p7 H! X* k* n datad = pd.read_csv(Desktop/square.csv,index_col=index) 4 C0 r2 K8 q: C2 s$ u( \
+ x3 @: ~2 g8 `& d$ V. x
. Z; p" N: ~% U
m=Map(tiles=Stamen Toner) #地图风格+ i/ J2 ]- a* V* z$ O 2 n' F: {) I K* [; X Choropleth(china_geo, #选择json U8 w8 U. g: C: Y4 `$ T" {# l9 Q- v0 p( v/ t data = datad, #数据 2 `2 i5 E( Q4 H+ B. B columns = [province,square], #列,第一个为key,第二个为value 8 f9 ^+ m) X3 J key_on = feature.properties.name,#匹配到json - B4 m7 u) R0 L2 N+ R fill_color = RdPu, #颜色 5 ]/ Y/ F% ]# e. R4 }- f7 M fill_opacity = 0.8, #填充透明度 % j& G' }( V) ` line_opactity = 1, #线透明度 9 n" V: V3 @/ A& R8 f$ w line_weight = 1, #线宽 / L* k& Y P# p) V legend_name = 面积 #图例3 q1 S3 W0 j4 e9 i: ~0 p : F+ K$ Y$ i) x- x3 y- @ ).add_to(m)3 m, y5 ~5 k* [, @ CircleMarker(location = [39.907518, 116.397514], #坐标点 % a+ ]0 Z. V7 M6 `6 ] radius = 10, #半径) e8 A, {+ C: T, Z1 } fill = True, #填充 + _$ R) G D5 H, D3 Q popup = This is beijing, #弹窗7 k( q% Q" j0 h4 V$ Y8 a weight = 1 #circlemarker线宽 5 ~8 T6 X: P) k/ d ).add_to(m) ; {0 B0 m1 f/ b m.fit_bounds(m.get_bounds()) m, N: T: c7 }* d# [ m 7 j6 I- n' x6 ~& d
& s: V' Z+ w/ B4 M: W0 b6 h, J
$ Z& q) c# s: n/ q2 M9 t

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

" X% q. G+ m6 p

两个重要的网站

& U# E# }$ k! m; i* E4 D

手动绘制geojson

- C0 i. T1 Q b# s3 b , r& z. o( W' E: ~& B. @

目前更新的geojson

. b, j; i+ E9 _+ s7 W 0 |# O) A# S2 C+ f

geojson格式

" e2 S( k, u9 C/ M- ^
{ W5 x. X; K9 Y "type": "FeatureCollection",5 [' H1 }4 s. L- @ T! L "features": [ : ^4 p; y* M8 C. d { . @& k$ B5 h5 J "properties": {"name": "Alabama"},) [# _9 O7 J9 o: B% i4 ^ "id": "AL",: ~- J3 W4 H2 t2 \ "type": "Feature", ) R' Y3 ~6 X& |( ] "geometry": {0 y7 k) Z$ K% c; v. B x "type": "Polygon", 4 A2 r C0 A- w" ?% p "coordinates": [[[-87.359296, 35.00118], ...]] T( |; \" P A1 o3 G) O } : d- y- \4 j; X3 @% z },8 ^* O& h% c$ [ {% K. A* y% f; L2 I* y2 ^ "properties": {"name": "Alaska"},) k* x0 J* X% {4 C" a' O5 j9 O "id": "AK",* n1 G2 {: c; w. Q# ?; r W& M "type": "Feature", ' l% R% ^5 j$ i- w- N/ L1 Q "geometry": {7 E/ r; C! z: ] "type": "MultiPolygon", ! i1 E7 }" F9 @2 w$ ` "coordinates": [[[[-131.602021, 55.117982], ... ]]] " b+ W6 `" v" i% E- C9 ` } 7 E7 R& \7 m3 t( m }, 4 P0 j M! w/ i$ B- ^ ... 0 _! D1 X m: s7 W' M ]) m* i3 u( G' D* ^4 C: n }* y5 j5 c8 Y# h5 ~ x' d% R
, z, \ Y( e- n0 M H

读取本地的json文件

5 {; I5 d" V, ]/ B, Q: J
f = open(zhengzhou.json) ' X1 K D2 ]' z! ~- q3 H9 ]6 j t = json.load(f)6 F X4 J n6 M1 U
5 R( @+ I9 C7 n# y8 L: n

读取网络json

# M: p$ t6 G; ]0 U1 g, Q- B
url = ( % a4 z1 X$ U* {: Q2 ? "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"2 e4 v2 z m, o. _1 y6 } ) 1 S& l& v& q% V, J us_states = f"{url}/us-states.json"4 m4 A/ }. ]6 @) o, q! J' | 1 V8 F& `0 H; l7 b geo_json_data = json.loads(requests.get(us_states).text) ; M0 ~: _! J# G3 h: ?
, s! a; p) ~) s3 b* N V+ O / y# C' i: M* i U1 \6 A2 r: [ ' L R8 J# P# G0 |& {$ U8 P & s* y6 h: x0 l - E, b7 E2 q8 n3 r
回复

举报 使用道具

相关帖子

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