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

Python画出好看的地图基于folium

[复制链接]
$ C% V- x% W8 U

Choropleth 等值线图

6 e+ z; |8 O# B1 x4 Y
import pandas as pd #读取数据 / @7 D+ ~1 L. t" E1 D from folium import Map,Choropleth,CircleMarker #用到的包 C1 A# _: H/ N% b0 t7 ~: w
7 v# g6 q4 Z4 i' [- d5 i
#包含省的中国地图json $ A; S7 C3 M0 ?. K- K china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json- O$ _& k8 Y& [ ?" u% m& | #读取用到的面积数据$ }/ q& H% y" F$ Z- d t) L datad = pd.read_csv(Desktop/square.csv,index_col=index). I, \8 c+ J: D5 w
/ b$ t: ] o, e2 x8 u; Y
0 x6 v- M; S( u/ r3 F
m=Map(tiles=Stamen Toner) #地图风格8 t7 W+ E) r4 ?. W" Q) q + M4 t. g4 M/ s# r. T8 U Choropleth(china_geo, #选择json3 g4 |9 j" e/ o7 K( p) T/ c9 _ data = datad, #数据7 a- {0 }) L0 E+ Z' l) J. K columns = [province,square], #列,第一个为key,第二个为value9 q* F7 C* O" z9 ^: ^1 f key_on = feature.properties.name,#匹配到json % U) {8 w$ b9 g/ q6 g4 Q2 i fill_color = RdPu, #颜色9 k5 U3 @: w+ _ y9 L# ?) e$ A) c fill_opacity = 0.8, #填充透明度 8 S' q+ B& y# W. K7 N% h line_opactity = 1, #线透明度5 P; k4 ?& p- M2 b7 [ I line_weight = 1, #线宽" H1 V, D5 X* r legend_name = 面积 #图例! c. m, x. L% T/ q, B- A ]* I1 a* H! P) i' _% ? ).add_to(m) " J9 L; r4 ]6 }% r$ F CircleMarker(location = [39.907518, 116.397514], #坐标点4 L$ H* \& ~! R+ G* {* t) H radius = 10, #半径 ) a3 t$ ?, S3 X: | fill = True, #填充( @" t M0 |4 J2 E2 c2 W popup = This is beijing, #弹窗 2 _8 a2 B9 L5 W% P6 o/ m weight = 1 #circlemarker线宽 0 T5 m( I! T8 D7 t: `, V3 r ).add_to(m)+ q* m2 u. j3 p, P' o% l m.fit_bounds(m.get_bounds()) 2 m. m: @; D* i" o& R6 f m' p0 m9 g) C ]- W! l/ y# G" b/ q
* P, l4 F" w7 x- U0 {
. B- X5 ~% M: o A

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

7 ?0 z+ ~4 W2 l# h* U

两个重要的网站

' C6 }# v; i% g: A R* [

手动绘制geojson

! h0 t' L- A# g8 l% Z) U! e! | 2 {7 V _0 l3 z5 l6 a

目前更新的geojson

1 P5 L3 _( {2 d/ s 9 E' j5 G; }( L7 y1 d) m; J9 E

geojson格式

7 x8 X# e& x* F$ ^' D" x- |
{ 3 T: L, o# @' g3 w/ w, l; k "type": "FeatureCollection",; z; Q2 C, h8 ?# _ "features": [ 4 b* I" e/ J$ `: h) p# H { + Z5 G2 C b( O5 }% U "properties": {"name": "Alabama"},; A/ A- Q3 {0 e: ~ "id": "AL",/ r& G2 |' s, L "type": "Feature", 3 M) F8 Z0 K9 D) t# l3 i/ \ "geometry": { 5 Q* ^& s! h1 r2 J8 m/ n "type": "Polygon",' i& U( T2 _! N2 b "coordinates": [[[-87.359296, 35.00118], ...]]! N0 z- E+ G5 w% [ } 3 C% C, C' Y% }+ p9 z/ | U },9 o6 z+ T' i" P5 M { * ~- s. E, W; `! Z# f/ g# a. j "properties": {"name": "Alaska"}, ! f, i5 K; s/ L6 H9 C9 a6 Y8 j "id": "AK", : t" t$ T$ c+ d8 T' s" T* w3 |9 v8 r "type": "Feature",2 L5 s2 |$ N! ^8 q "geometry": { ' q$ |0 m/ b& B! m/ t "type": "MultiPolygon",) M: O7 K( W) g1 C "coordinates": [[[[-131.602021, 55.117982], ... ]]]/ V& K5 [( K3 J4 @8 v; _ @8 m }4 a r4 R! H- j& P4 r },( s0 w1 L8 W( f! c ...9 L1 h3 K/ J+ A& N$ k; K7 Q) v ]) e( ]8 o2 |3 K7 [' j0 g7 I, G }) V4 [# [8 ~4 K$ _
0 V6 `3 l9 A% ?& {5 l( \! m1 o/ M4 N. ^

读取本地的json文件

; e/ N, @# Q# ~' C" z& c
f = open(zhengzhou.json) 5 u2 K, \. I: ^6 J9 j t = json.load(f)3 V( s9 R2 n# c# Z8 n
9 A8 G% E0 H' Z1 F6 a# ?

读取网络json

$ e: O o4 k) B
url = (0 }% b( y( }: y, y$ _( P0 r "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"; O& ~( t+ s8 }$ v ) : v/ {" k5 g) c( q% G$ O us_states = f"{url}/us-states.json" 1 |% t* g/ X6 Q- _+ X 1 B1 ]- E! R( L+ v geo_json_data = json.loads(requests.get(us_states).text) K+ l/ X- G) s6 ~" ]8 ]
# T* h( g" y4 b % r; _ g8 y0 m1 s3 ^" X Z: n , j& U/ y3 o$ [ b" E$ K 7 E! {/ @8 s9 ]( f5 I: g& ? 3 Y3 i3 y* B+ O, p( L9 c: E, \
回复

举报 使用道具

相关帖子

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