|
5 k8 R) \! k: l0 M% B c& w" n 今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧!
$ t( e8 X( ]1 n$ |) P4 ^ 可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。
' u0 H' V- F- m( a4 Q7 s7 D' L1 h 在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库 a5 u) E3 E7 A t+ |
import pandas as pd
2 [0 l: c% y+ s* ^: [1 p9 s+ \8 ? import matplotlib.pyplot as plt9 t2 z4 @5 M3 }+ n5 [
from mpl_toolkits.basemap import Basemap
4 E3 @: o8 A/ M5 `5 l* n% H %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)4 f% F+ z6 F. r, b
map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)# x E7 O8 X$ w7 n
map1.drawcoastlines() #绘制海岸线
/ L4 B9 d" j9 L- n: r map1.drawcountries() #绘制国家 U0 ?0 Y6 h, J" ~! l2 f, r9 e1 x
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
; h9 |; D r$ O( o map1.drawcoastlines() #绘制海岸线
0 ~6 D! }; I+ o0 F map1.drawcountries() #绘制国家" n* u* h5 ~. h! J4 E4 Y7 m7 |
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
$ t8 m* _/ y4 {: c% J1 X F map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
" o+ k) P1 ~5 h# X map1.drawcoastlines() #绘制海岸线7 X% ?# B& u* H, ?: X6 B
map1.drawcountries() #绘制国家8 _1 V7 o1 Q0 k5 ?- ?3 [& v; _4 t' ]
map1.drawmapboundary() #绘制边界$ y0 t0 J8 t `4 H4 d7 I+ y
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
0 [5 Z1 c: W$ I" c4 o8 u5 x map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
, h2 V, v3 {, `9 f! y map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
. ?) R# E6 z$ X6 d9 n; A map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)# \' N3 ^% Q8 S. C& Z1 [7 \
map1.drawcoastlines() #绘制海岸线8 w$ g. w, [' Y1 ]( l+ r
map1.drawcountries() #绘制国家
" N4 F; m! K' ~) J4 }4 C map1.drawmapboundary() #绘制边界
8 i- s/ K2 X: h; ]4 j# w map1.fillcontinents(color=blue,alpha=0.5) #填充颜色+ p( E1 z5 P* Q8 Y
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线6 x; y: R8 i1 Y5 A! N3 v7 l8 |, _% I
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线7 x3 O: n; P$ j
map2=Basemap(projection=stere,lat_0=90,lon_0=-105,llcrnrlon=-118.67,llcrnrlat=23.41,urcrnrlon=-64.5,urcrnrlat=45.44,resolution=l,area_thresh=1000.0)# f/ C9 M# i- ] r$ g8 B2 e
map2.drawcoastlines() #绘制海岸线
& F9 m, Z+ U- |8 S s" E- z map2.drawcountries() #绘制国家3 @/ J6 w" [% D" @
map2.drawmapboundary() #绘制边界
5 c5 `" F5 V4 c9 h# T, @9 L2 _- r map2.drawstates() #绘制州
7 s' f7 Z2 P- H2 b; s2 E; J map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
3 [4 p. b: O4 D# [ map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线* z8 L) Y1 f- }8 ~! P8 e
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线% b" P' B4 V- O9 H, u: K4 J- A
map2=Basemap(projection=stere,lat_0=90,lon_0=-105,llcrnrlon=-118.67,llcrnrlat=23.41,urcrnrlon=-64.5, urcrnrlat=45.44,resolution=l, area_thresh=1000.0)
$ f% _; s& y1 x* f map2.drawcoastlines() #绘制海岸线
; p i5 }9 d" R) E7 T! g, T8 r+ z% ? map2.drawcountries() #绘制国家0 v) Z/ r9 l1 {; c8 h1 }
map2.drawmapboundary() #绘制边界
/ a2 P3 _1 c" X+ ] map2.drawstates() #绘制州
; m3 C5 I# [) t. I/ F0 d( W map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
+ D6 K3 _& |! `. Z |6 R map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
1 I: g) F0 i+ U1 {* c lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标 T$ m4 v3 f _; @3 g
map2.plot(x, y, ro, markersize=8) #绘制散点图6 t5 c; u- o% O) U' q- r6 {* p
map2=Basemap(projection=stere,lat_0=90,lon_0=-105,llcrnrlon=-118.67,llcrnrlat=23.41,urcrnrlon=-64.5, urcrnrlat=45.44,resolution=l, area_thresh=1000.0)' a8 g8 t4 U- M3 ?) Y# ?1 }
map2.drawcoastlines() #绘制海岸线
0 N: P) D" [& ^3 T map2.drawcountries() #绘制国家
# e( L) n0 G( D) T map2.drawmapboundary() #绘制边界
! w9 M: q1 |* j6 A map2.drawstates() #绘制州" @! Y' [. ~( H" u/ w1 d
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线; E7 d1 A7 {& ]: G0 Q/ {
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线9 C" h' O% Z. Y. j% J6 b7 }5 @$ m( b
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
; a0 ~1 C {! K5 Y* C% E3 m map2.plot(x, y, ro, markersize=8) #绘制散点图! N9 F! Y, o1 x3 }4 D
plt.text(x,y,New York) #文本注释
* F+ a" f( y& g% d/ F
8 ~ K. {5 ?: a# D- |& \# ~: X 学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
) Z8 S& k. V3 G3 k0 Z 本文来源于公众号:大话数据分析
8 s+ e$ V. C# j, y 更多实用的数据分析知识,请关注后,一同学习! " x3 I P# }. d( u5 j. O
- I0 P' S" K( v7 O8 X
& M% H5 t6 t' u0 k p+ O) T; A* h' v: T9 x/ T- v+ w
7 j) ~3 L; Z4 z1 Y. @" |( }
|