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

Python画出好看的地图基于folium

[复制链接]
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
回复

举报 使用道具

相关帖子

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