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

Python画出好看的地图基于folium

[复制链接]
! p& q4 k ^, {( ?

Choropleth 等值线图

+ O# K5 B$ X5 S- |0 N( E
import pandas as pd #读取数据3 ]* r0 d$ l z; w' \# z$ v2 [ from folium import Map,Choropleth,CircleMarker #用到的包 6 _. c- W" N! a ]
2 ]& `2 T8 w1 {9 x. W, N2 n
#包含省的中国地图json9 J# r, W g, E, S6 l7 L china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json * K/ E' ~6 Z$ i8 O #读取用到的面积数据 ) t x) y* T: [3 e1 B datad = pd.read_csv(Desktop/square.csv,index_col=index) # r$ Q8 t& H8 u G) E, t
3 i4 K7 _! B ]$ D+ y% n1 ]
3 t' l; b3 ?4 m9 N0 E
m=Map(tiles=Stamen Toner) #地图风格 2 w9 i, d+ ]; f3 m # Z7 F: Y% T: f Choropleth(china_geo, #选择json q; H( @( z+ r; Y6 H0 C9 L data = datad, #数据2 D# ?0 o! t5 F3 h; `1 k M columns = [province,square], #列,第一个为key,第二个为value 5 l4 g! b H% x: H& p key_on = feature.properties.name,#匹配到json ( x8 a4 a- X. n fill_color = RdPu, #颜色 # U( r. J5 r) V; V0 g `) e( z fill_opacity = 0.8, #填充透明度* G, `& J- A( I' L" k line_opactity = 1, #线透明度 : a# O9 U# H& E( @' I1 D line_weight = 1, #线宽8 M, Z8 `8 H( G9 h legend_name = 面积 #图例 5 x" X! `) E8 p0 G/ b4 u! e! j |& M3 k" U; v6 l ).add_to(m)# z0 Y2 q/ H1 O: O CircleMarker(location = [39.907518, 116.397514], #坐标点9 I i7 A8 E( k* c, ~ radius = 10, #半径! C$ b- Y( j8 h7 k0 n" F fill = True, #填充 $ m4 j' k6 f% N3 L' c" l+ a- D p popup = This is beijing, #弹窗% H$ R% c6 C0 t4 g+ E; m% w weight = 1 #circlemarker线宽 J! v' ?) f/ x/ D2 g/ T! T3 W ).add_to(m) k- \* D4 \. A' S9 j% O m.fit_bounds(m.get_bounds()) ' {% P% ~8 N$ b6 h m . D3 g$ u5 y* B
8 X1 R8 I8 T* ^" ]
6 P- s/ \6 K/ w+ Z/ r/ C

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

* B- N/ A3 [; e. F# ^; z8 L

两个重要的网站

& ]! e6 G! L3 o

手动绘制geojson

" B0 y. p: {: a0 _: F 6 \' M8 [9 g- C( f. B! a4 o

目前更新的geojson

8 V, N9 y/ c/ @' M# o 8 C0 c/ t- ?1 j2 f: X9 {

geojson格式

1 d1 l% N$ p* [; U+ A
{) Y- T* u: ]: E% C: J "type": "FeatureCollection", 5 h! k$ U0 F o7 ^0 {+ n "features": [: Q9 ^4 S! ~. T, C% H) M { 4 G: i$ k g# H, Q9 t; }) O "properties": {"name": "Alabama"},' v, k: \# ]6 T4 Y "id": "AL",$ P. G& O4 s/ C- A+ R6 ^& h/ e "type": "Feature", Z4 m) Z9 w0 P9 r( x$ F "geometry": {& `6 Y8 K0 b; P ?2 n "type": "Polygon",- e* { M) t5 I7 y) D. ? "coordinates": [[[-87.359296, 35.00118], ...]]. D5 z8 V7 f. }* C }7 d$ H7 T t6 W( _ }, 6 i7 R6 h6 c+ ~. A4 z { ) r+ Q6 i& `1 Y "properties": {"name": "Alaska"}, % s1 }* F3 N4 s% ~, ?* G3 L "id": "AK",' P6 a6 O# z. O; {, y! z "type": "Feature", 4 r- C, W) c5 N* B: B2 } "geometry": { 5 E$ P9 E. `9 B "type": "MultiPolygon", . L" V5 ^5 ?& ]8 d5 w3 H "coordinates": [[[[-131.602021, 55.117982], ... ]]] , a5 [' U/ D( h8 z! c5 b! q' O }; {. V3 y7 a7 K: _ }, / Q4 T/ r- i2 `. i) [ s* a$ u ... J) I/ L/ _% [% l$ r, s6 y ] 7 C1 j& }$ T9 _/ R# f+ `2 K$ K }( P9 N, h+ V1 e* N- g0 L
' ^2 l/ y K: u$ `+ c& E

读取本地的json文件

' K" H/ \( E2 t+ T& Q/ e
f = open(zhengzhou.json)% M) f# j2 T$ P$ f t = json.load(f)6 A1 }1 n8 g. l/ V! J
+ F8 ?7 w. Z: a S

读取网络json

4 p F3 M) M( _' A" g, H- g1 O
url = (3 N$ I H; V _' \, { Q "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data" 9 H }# {0 @% ]6 ` M ) ! P- a# y0 ^ p/ M: n3 M# r9 J us_states = f"{url}/us-states.json" 1 l6 }- j9 D& J7 |6 ?( F1 @9 n$ L, c3 v9 ?" x6 _ R ? geo_json_data = json.loads(requests.get(us_states).text) / p! i1 |! D7 r$ i2 J. D3 K
# X( r8 F w- l) f: M l , ?2 q! X- U$ }- d9 o0 z, Q( g - N+ A. c$ r. J/ g- Z2 e# A o4 O" \ s/ v3 |" ^ L% G9 h 7 {: H, _( E' S" r Z
回复

举报 使用道具

相关帖子

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