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

Python画出好看的地图基于folium

[复制链接]
8 x$ ^4 ~4 r* x# ?

Choropleth 等值线图

0 `; K0 f* Z8 Y
import pandas as pd #读取数据 " C( M1 Y; c9 G5 d8 `/ L from folium import Map,Choropleth,CircleMarker #用到的包3 Z x7 F; Y1 R- O. F7 b
6 O3 c8 C! p0 m% S
#包含省的中国地图json h6 F; n, t6 g2 S china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json + Y' h( F0 J8 V* i8 f5 | #读取用到的面积数据6 j4 R1 `" S) ~! { datad = pd.read_csv(Desktop/square.csv,index_col=index)# l3 u8 p4 k# S% W% u, M
+ `" {* w( j1 J+ q4 Y5 X
3 E% ~2 T* L! ^# b! Z
m=Map(tiles=Stamen Toner) #地图风格 ! c6 n2 ]+ `! [( f& p* Y " f) h5 p V1 _2 C' s/ z Choropleth(china_geo, #选择json 9 x" V" W- h v& F data = datad, #数据+ O- m" \! n% V0 s' X columns = [province,square], #列,第一个为key,第二个为value 0 R/ G2 b2 I4 Q: W key_on = feature.properties.name,#匹配到json 4 l4 K. Z/ w2 z% S( r fill_color = RdPu, #颜色 4 D7 W7 v( o6 l; ]( B4 f* @4 S fill_opacity = 0.8, #填充透明度- n t5 d& z; u+ d3 f6 U- L9 F line_opactity = 1, #线透明度 ( l# Z& B4 W8 R, w line_weight = 1, #线宽 + v! C- [ ]; w+ F legend_name = 面积 #图例 . T4 }7 K7 e5 q) v# n% K. o# s! L1 @- f) w/ T9 ? ).add_to(m) $ o. ~" e# W; O: I( o) { CircleMarker(location = [39.907518, 116.397514], #坐标点 - w8 `# Z/ ~+ G* _ radius = 10, #半径2 L* v6 U( d) g5 \! Z% I fill = True, #填充 3 J) h- @$ j; [" t( r/ m* y+ D popup = This is beijing, #弹窗 1 |8 |! P8 ~8 T1 m. c$ ?% {. \ weight = 1 #circlemarker线宽 2 H8 D2 h) z" O1 ~& Y# q0 y. s; [2 O1 B ).add_to(m) 9 n* `+ L8 T- g* d2 u9 R m.fit_bounds(m.get_bounds())& v% h0 w/ E3 g1 V O m9 N3 b3 a! M- G
( P: q( s/ m% \& r: X' ~2 Z
# P! l* S4 e% G" P4 T$ d4 Y

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

. q* \ S0 P" V/ @9 t; }0 E/ l

两个重要的网站

9 W \" Z3 h. D# T7 `

手动绘制geojson

/ P2 v6 o+ t) k' Y ! `" T% t% r. [1 u( Y

目前更新的geojson

' S/ I8 w1 Y$ J W: j$ e " x7 K, k4 x9 E5 x

geojson格式

Z9 \4 a: Y+ R( j, m) O4 h
{4 O" P+ l) g5 J5 ?: W "type": "FeatureCollection",8 f V' W5 I! r r "features": [6 t; ~) h% U8 y# i. Y2 Q: x( r {; y6 |0 v# k, ~3 H% e1 P "properties": {"name": "Alabama"},+ [. q' M% l: N* H& ]4 G "id": "AL", ( I p, e4 b2 W5 g/ ] "type": "Feature",* S: ?3 ?- U, j5 ~ "geometry": { ( ?( |$ f4 u& t4 h9 X "type": "Polygon",' ^% x( t3 x" [! E "coordinates": [[[-87.359296, 35.00118], ...]]3 y; k$ r% o9 b5 q/ ` }& J2 |8 u7 J, j4 l* r0 ` }, 1 g8 t# K3 r& v- o+ Y5 a/ H* n' \2 c {+ D/ g' r! e+ p& H* P* Z% v/ ? "properties": {"name": "Alaska"}, 9 D s! S; q. w) q0 q+ z' U+ g "id": "AK", & S7 m2 A! m2 m, [& ? "type": "Feature",8 b9 D! i) a! j# O F/ C) ^ "geometry": {' S3 p' i! \: Q+ T! B) k( i) [+ I2 ^ "type": "MultiPolygon", ( V4 w; v: U: e/ V! a8 }/ D3 C "coordinates": [[[[-131.602021, 55.117982], ... ]]]. E4 ^6 k7 M; m( _ }$ Q9 b4 q. y: k. h! J' g },; g0 D) e( t8 c, `6 [3 B ...! i- {/ K: g* a6 X! W( I [ ] * r; y1 c: ?1 q3 s7 x9 J2 K. d } 3 s' N6 l* @% i) q
! l! N1 ^7 o7 w

读取本地的json文件

! o2 b5 {0 c# ?6 X) i
f = open(zhengzhou.json)4 [& L( J7 M4 l% o: d t = json.load(f) e- |# R$ n0 j1 v f
6 r# k: x0 D F: W3 C( O8 d

读取网络json

: Q3 B+ u9 s" d- ^4 v
url = (8 a- I. ~; [7 p "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data" # r, H8 G" u& E1 } ) v- b3 Y& u! ?$ n: x us_states = f"{url}/us-states.json" & q/ q' x; Y2 y/ ~* o( y% \ 4 y) J$ A8 f E; a geo_json_data = json.loads(requests.get(us_states).text) # v+ A" _' y( j$ l9 l
& V! q" Z: v: R+ u$ a2 l0 r1 c; @, r / _) l* Z' F* `4 L3 p9 \5 y# k# h* a $ s: \1 h- {. ?% e$ a/ C 3 o7 l+ N8 S- g8 u- k' V0 P# ?' i3 H 4 ?- @$ D4 C+ V' y- P$ i5 m
回复

举报 使用道具

相关帖子

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