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

Python画出好看的地图基于folium

[复制链接]
3 E3 \) Z! ^. k

Choropleth 等值线图

. z3 @; b4 k: ?% l) ?2 r* N
import pandas as pd #读取数据 / x2 M- B, X0 L2 _9 g from folium import Map,Choropleth,CircleMarker #用到的包 9 H$ A I9 M" j) E
; E2 c# [$ X" x* v" A
#包含省的中国地图json 6 K8 s/ V$ S! O% }1 E2 ^, g china_geo = fhttps://geo.datav.aliyun.com/areas_v2/bound/100000_full.json$ u% s$ v* B0 p% E9 \7 | #读取用到的面积数据 ; q- K: g) g. k4 s! I( O; K4 F datad = pd.read_csv(Desktop/square.csv,index_col=index) . f4 D. y" p# x/ b( n1 {
7 H0 |$ C( B" b6 Y% J( X
. U% J9 N5 l W0 Z0 L( g. t. k
m=Map(tiles=Stamen Toner) #地图风格 & s7 p+ O. C7 |# u" O: h / Y% ]! l1 O' f Choropleth(china_geo, #选择json, I9 t; r) e3 t m! j data = datad, #数据2 h3 f& p7 {& O. y1 H. { columns = [province,square], #列,第一个为key,第二个为value 8 M; t+ b3 n1 G+ I7 @8 l# I key_on = feature.properties.name,#匹配到json ; Y( d" i! i6 \" d F fill_color = RdPu, #颜色 / ^9 V, t/ ^3 K7 c8 Q( A fill_opacity = 0.8, #填充透明度$ F) U n( \% t: ~- m; S } line_opactity = 1, #线透明度 # v8 y* [" {! h line_weight = 1, #线宽; f: I) I0 w1 h) _, j legend_name = 面积 #图例 $ O, t3 d7 Q6 e3 ]4 Z # T" Z. ^$ n9 ], C, j ).add_to(m) : U# R& h/ o' V0 e7 C5 y CircleMarker(location = [39.907518, 116.397514], #坐标点0 j6 m1 i* i" V. L. H radius = 10, #半径 : L2 C( E: A$ a% K& I; B fill = True, #填充 . b6 {; N3 E8 ?' B# i! O popup = This is beijing, #弹窗 : E+ M4 L; c1 c D& M& w8 { weight = 1 #circlemarker线宽 . J4 `7 X. N: T' [ ).add_to(m) ! ?/ N$ [: q* q+ j+ E m.fit_bounds(m.get_bounds())& t1 O* j+ t( I m) a, s! E* R/ f* J
1 _: H+ ^ ? E. X
5 t0 k4 D% c3 s

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

6 A9 t6 S( @4 r8 `/ E$ A M

两个重要的网站

" _0 ~6 S" p# G" F5 H

手动绘制geojson

) t& b+ X+ ^: Z3 X$ } 2 w( p) [( o: Q) r: w1 k$ o f

目前更新的geojson

3 Z& B f3 E i5 }9 A0 i0 _ x2 m# p) z6 k& |! A

geojson格式

2 ^# n# m$ m" T' O. @0 X8 {
{ 4 H6 n' \5 ]! X) a* N6 J8 F# H "type": "FeatureCollection",7 |) q/ z0 O: k( K c1 N "features": [ 1 g6 y, i' Q) e8 H8 e. f { 4 @2 _- x$ B! B7 _6 r0 K "properties": {"name": "Alabama"}, ; f9 f; e- I- m( y "id": "AL", / W% a3 a1 Y1 n$ ?5 ?2 n "type": "Feature",0 ?: Z, L" n7 i( w. p2 |4 @9 {) B "geometry": { $ b8 T( O3 G+ R1 k& ^; A. H "type": "Polygon",4 j8 I! @ v1 E* S# E; |1 Y3 V @ "coordinates": [[[-87.359296, 35.00118], ...]]. Q4 \0 z( c3 t5 V& Y8 ^ }; z6 N, e- K+ w }, 8 F8 e, H9 p- C% L$ j { 6 n1 c( E2 P# H+ v( B s" U/ ] "properties": {"name": "Alaska"},& z9 Y: }+ L6 r2 f I! O "id": "AK",) q. a6 J. p" { "type": "Feature",# t2 |/ T7 T' x2 b "geometry": { # L0 o/ A7 V4 k% f# Z7 ? "type": "MultiPolygon",. E; _! u: a( G8 c+ [* h1 \ "coordinates": [[[[-131.602021, 55.117982], ... ]]]$ k( M8 t" j7 \. B, d) d0 K K } & u: O9 l+ ?* \5 u# V j( |" p$ E }, ! T- w& e# i$ k" G ... 1 H8 W* d4 d$ B ^ ]/ l4 D. X+ \7 p/ F7 m }$ | C, b1 x p* B) Y5 w; H
: \8 _& M# l* s8 [0 B! Q

读取本地的json文件

! U; f& _5 O8 ~% C
f = open(zhengzhou.json)* |- e# j0 q" }+ _$ ]2 g t = json.load(f) 2 j0 ~, J* G# M
. W$ `9 S" A- _+ e8 a

读取网络json

8 N2 b' o8 K* H7 z4 y, J& e
url = ( @( f( X% @# E2 A: n "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data" 5 @: n _5 {0 r9 I$ Q ) ) N ^8 ~; j* q us_states = f"{url}/us-states.json" 3 Y4 s1 i3 w, Y" T" O : @9 N: b' m6 O* e# ^" |7 p$ L+ u0 c geo_json_data = json.loads(requests.get(us_states).text)0 `- A) k4 A6 X5 R
# N) e; T, q2 A% D5 e- m , ~; h/ U/ F4 m7 k8 \ ( p S) \+ i8 S' j9 B' Q- H' i0 V# u2 B: O, j4 q" f + _; }; g5 a( H, V7 @4 I
回复

举报 使用道具

相关帖子

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