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

Python画出好看的地图基于folium

[复制链接]
2 d, n$ E* o+ V# N/ m4 k

Choropleth 等值线图

/ H# F( \: k, S4 u
import pandas as pd #读取数据; D4 \$ y' ~: I4 t from folium import Map,Choropleth,CircleMarker #用到的包 6 v) {# r6 E8 V. @* p4 R
, d5 c; `! C9 a: s
#包含省的中国地图json 2 q( b! v/ ^. T" m china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json! [4 x( G4 @# R2 S7 A #读取用到的面积数据 $ N& |' L; Z- U+ [' \- y8 R datad = pd.read_csv(Desktop/square.csv,index_col=index)" n* ~5 M9 H" H+ P' d; \% U
# k7 q4 a( X3 ~7 ~* F
/ B; V- a: t! I+ p; u
m=Map(tiles=Stamen Toner) #地图风格) V: s- N3 {5 y - F. l7 b! f, I( O7 j N Choropleth(china_geo, #选择json # T# U0 [# O& V data = datad, #数据0 y2 ^6 H- O- g6 e columns = [province,square], #列,第一个为key,第二个为value 8 V; X6 m7 I2 I3 U, N key_on = feature.properties.name,#匹配到json/ B( z2 p' y w l& _/ ? fill_color = RdPu, #颜色9 d! ^& v N+ P5 X. N: | fill_opacity = 0.8, #填充透明度' _- }0 e) m' m! x line_opactity = 1, #线透明度 6 U, \/ F' n# c& G( f q$ r) x line_weight = 1, #线宽3 |1 S# {3 x' J+ ?3 f+ t- E; i# U legend_name = 面积 #图例 ' s2 G, C% u& K) ]# T5 h% a! b' U+ }" u: t0 T7 o ).add_to(m), U: i, F1 e9 u" p CircleMarker(location = [39.907518, 116.397514], #坐标点 % j+ C7 m. i& I: B0 x radius = 10, #半径( N7 h* Y2 J: c fill = True, #填充2 s/ I% z0 W( z# e( G popup = This is beijing, #弹窗 . N$ f2 X1 n" r weight = 1 #circlemarker线宽 / [. _& P, D. \7 X ).add_to(m)( o* h1 o. }0 p; m( u m.fit_bounds(m.get_bounds()) ' S4 c1 O p$ V m' k& D3 @" l( _$ m4 f4 v" n$ t
9 [: O$ v0 R0 z1 [8 P
( B: o$ F6 `; ]7 _* ^/ F7 z# T; k

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

. H' Q" m. M6 l

两个重要的网站

' s2 {: U* z' w8 L

手动绘制geojson

0 S& T3 h6 o4 \ 9 Z% j: ^' n8 ?* {& c

目前更新的geojson

1 ?0 \$ M, y L# t7 d5 a: g / K) ?% R& G" N% I: Y

geojson格式

, G; z+ V6 s" p# K
{ 8 }* F' r3 h1 y8 G1 u& z2 { "type": "FeatureCollection", z- f! P( b$ z3 Q+ N" l8 y "features": [9 d3 j, _$ M5 ]# Y { ' J) C/ `- K c n! P. t "properties": {"name": "Alabama"},4 A( g2 I8 \) n/ C. x "id": "AL",, f$ j- ?- D9 x "type": "Feature",7 \! k# A7 h) ~# }- ~ "geometry": {- {; ^. U( v4 r H2 \5 m# b "type": "Polygon", & B6 Z, t5 \. I9 m7 H "coordinates": [[[-87.359296, 35.00118], ...]]- M e, S8 P" w! Q3 |4 ^ } : }! z# A* D' Z% n+ G }, $ I' \ u# b& C2 u {* x% s1 l& k- H% T' A "properties": {"name": "Alaska"}, : [' w+ j7 J. [0 O "id": "AK",1 M8 b, K! a" ]2 O, f "type": "Feature",. J3 V2 y% U$ ?% C# S. S- S "geometry": { $ A9 v: l9 J5 o1 y" ?5 i "type": "MultiPolygon", 1 I7 B, f7 M7 `# u "coordinates": [[[[-131.602021, 55.117982], ... ]]]1 i; Y8 A& q- ~* q, {4 a } ' s: g) y" y2 [. g' S }, 3 K' K C; `) H1 { ...9 m/ Z% J% o; u6 v) o8 Q5 L ]/ b, b) v' x; n1 O }- j- Y) K) R3 D- q9 Q2 i9 M8 V
3 N0 B5 `7 p! k9 U+ c) t* ]

读取本地的json文件

) B R; K) y! k7 z# ^- n
f = open(zhengzhou.json)- f4 t" K% k+ _( A" u% |8 a. {3 ~ t = json.load(f) * D Q3 b& N7 p$ P" _' Q
& O, o, a2 C( L5 [: |

读取网络json

+ h5 \1 w* P0 d1 c
url = (3 o1 {$ c0 ~9 K( h; {" u8 c "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data" ) q8 S; C. I# W/ |1 d9 n% ]4 c& B ) , h( [8 m% k- X us_states = f"{url}/us-states.json"4 y- ^) u7 [9 Z4 C2 m5 `3 E 5 P) E) {1 @( Y# n2 L geo_json_data = json.loads(requests.get(us_states).text) ' Q0 Q9 s( }. u/ M! |3 e% u
" X; U: R" p, d9 u . a$ t) @( t6 W4 `! {4 e/ n+ k. U4 V/ O/ V" S % e) q. x; n. Q7 \( z& D8 n f% K r! V' X
回复

举报 使用道具

相关帖子

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