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

Python画出好看的地图基于folium

[复制链接]
$ l4 d7 T; a5 E0 a g

Choropleth 等值线图

0 X1 @* z8 d/ Y! i; ~7 G# n U- A7 r
import pandas as pd #读取数据/ o" \: S- m6 j from folium import Map,Choropleth,CircleMarker #用到的包: S( Z) J7 C3 @0 [+ F) ?
. f: ~/ }4 f/ c6 @2 Q
#包含省的中国地图json! i) X5 }+ h4 \1 m8 x# T' J china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json 5 { @5 }( T2 V1 ?# Z5 q+ u( \6 d4 L #读取用到的面积数据9 Y, ~( q# S% M+ b7 X datad = pd.read_csv(Desktop/square.csv,index_col=index)# q2 D- ?" G1 w$ T$ T7 S
4 H; j. d, J" G G$ }8 O. A
7 i) u, y8 B P2 B/ q# m5 r* x
m=Map(tiles=Stamen Toner) #地图风格 6 Q9 D. j: r8 s& h0 S2 p0 ?' s A5 ^. F& a( P- d1 n( T. ` Choropleth(china_geo, #选择json9 X* g# l3 N' D3 u# K- r3 N& c5 f: H data = datad, #数据7 ?0 l8 R" k% @+ Z columns = [province,square], #列,第一个为key,第二个为value+ z, [5 D/ e+ _% J6 r3 U* Z key_on = feature.properties.name,#匹配到json ) Q$ f7 q6 @% k0 S6 f fill_color = RdPu, #颜色 ( c8 `- D5 N0 C( F* I- W fill_opacity = 0.8, #填充透明度9 F0 l$ N+ H! V) x0 V G" l1 Q9 f line_opactity = 1, #线透明度 # c) _9 G% j5 G; k" E, C line_weight = 1, #线宽/ ^+ q) {. ?# H legend_name = 面积 #图例 - P- N7 w5 n" B / H' s9 T: N9 N' w2 c: C0 ] ).add_to(m), B b; C/ |6 x3 B CircleMarker(location = [39.907518, 116.397514], #坐标点( ? V# n9 J G. ~8 ^% B, o' P radius = 10, #半径 - w0 n9 _! U# ~$ T/ |" Z fill = True, #填充 0 z4 w' a6 ]0 o3 D# M! O popup = This is beijing, #弹窗- X+ k U0 c& e. ?3 K7 { weight = 1 #circlemarker线宽 + A' Z! f. N1 m h# Z \$ ` ).add_to(m) 1 Y6 W; e N; N m.fit_bounds(m.get_bounds())7 {/ R% Y' k( ^7 y m 8 t+ ~: g8 F# r0 D2 G( O
; U+ }: ~- T$ a* m8 S+ S; C9 W; S
. _: X7 E& w, i% d; d9 `

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

/ ?, e: R& ?8 d2 v' L8 M/ x

两个重要的网站

) r! D; m: Q. }( W

手动绘制geojson

; u. k, F# f1 d . H# w1 j: N# P. a, q/ h# u; ^2 p' l

目前更新的geojson

; D4 D, c/ s# t3 q2 O " K2 ~. K2 d/ t/ y, J

geojson格式

8 m$ A$ Q* Y4 j' N
{% A, p1 K8 a/ e. B( D "type": "FeatureCollection", 3 ^! ^- H) j2 ]+ k% c "features": [ + ?- r( A% C* W* }& x' E9 \0 z {: {9 o- F- t2 O/ D "properties": {"name": "Alabama"},2 Z; L! u) |3 X1 @+ }% J9 W! x "id": "AL",0 b* y* c1 T1 Q2 y. d& N. f8 O+ a1 I "type": "Feature", @8 i' [+ z; Q7 f3 h "geometry": {4 S ~' ~) q$ n: r P/ e "type": "Polygon", % K- I B) _& t: t$ G "coordinates": [[[-87.359296, 35.00118], ...]] # e9 h: W. s: D% J5 I } 1 ]+ u& H0 `& ~0 C7 G },0 W& e3 n0 l2 W% W9 a) ^: H2 s0 t# I {. F' {% W+ o0 S "properties": {"name": "Alaska"},# m g7 F H. E; e/ j8 L; b "id": "AK",$ X) R1 ^5 o; q$ Z" t "type": "Feature", 0 u8 G: x* ^5 ? ?8 j "geometry": { 2 B) A# M: h& k: ]+ c- `. S: b, N "type": "MultiPolygon", 5 A; J6 u. D4 x; m8 q "coordinates": [[[[-131.602021, 55.117982], ... ]]]/ N/ `* Q; E6 ] } ( a# K8 r6 F- Y8 \7 C1 B }, - Q. V- { k* Y! V9 P3 y ...' r: D& D0 M$ y; o ] ! V4 Y, U+ Z, Z3 n' h6 s! o! A/ ^# r } # @( y5 f4 [. |7 u! B
9 q* q( q. n& E" x/ d2 R

读取本地的json文件

. s K# D% [% ?; b' B- C
f = open(zhengzhou.json)% P5 ]# v [# @" ~9 g/ y1 i t = json.load(f) * E+ ?; T/ A# F, {' ?& L& ~$ u0 o* e! A
1 ^8 N& X. M l) B' k% L

读取网络json

' X: N) k- ~6 D
url = (: u, S: j1 | B/ d/ ?; p "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data" 2 X* U9 U* I% K )! c# B3 c: g( y$ N) o0 E$ ~7 r us_states = f"{url}/us-states.json" $ \6 k2 O& o/ f. B% \, Q } , m1 N0 D2 z6 u$ X, z- d5 N: `7 k geo_json_data = json.loads(requests.get(us_states).text) ; a3 p/ f% @% ^ c$ I# _
* v1 y* P% K; L" w 9 R* {# c% |& ^* Z) h" f0 _. P4 J+ i! n- x6 I# e- W 1 `! j* h) c$ }( ]6 r% |. m8 k% d& Q* o \2 I5 M, e
回复

举报 使用道具

相关帖子

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