|
! q# n2 L3 x9 N8 u# O
今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! ' L, l( N) b" D0 J6 G& ^
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。
5 _+ y) m3 Q2 T8 |; V 在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库: x2 b; X( S. c1 @
import pandas as pd% E, Z A( b$ A( d" I
import matplotlib.pyplot as plt! E& e% `+ ]0 }1 {- r- U7 O, p
from mpl_toolkits.basemap import Basemap
5 u( L( i7 M: q) C! |. d0 o( P4 N %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
7 M. b3 b7 k6 I% E9 l. z! S% { map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
. B: G' {' f+ w0 e! L- R4 K map1.drawcoastlines() #绘制海岸线/ w+ O# W* F- {% }0 g& @; M, C( o0 z
map1.drawcountries() #绘制国家
7 \, G2 \ W6 v* x% ?2 G6 R' Z) u; l map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
/ [7 z& b1 O3 ~& M6 l5 I1 O* j map1.drawcoastlines() #绘制海岸线
" s, N, k9 H9 r) U1 k map1.drawcountries() #绘制国家, y: Z. U$ B- p
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
# j3 N9 c9 K& J' `& G map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)/ v7 C" S0 K5 \
map1.drawcoastlines() #绘制海岸线
# f$ P" g1 J( s map1.drawcountries() #绘制国家/ O. ^' H3 {( k3 @/ P
map1.drawmapboundary() #绘制边界3 n9 `1 L' V4 g) S, M0 j
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色" Z8 u* e+ B- O8 q2 i6 X j
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线- ^2 a6 |, B/ I; H: t' ^( U. V
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
, [0 S1 ~4 p+ \$ @ map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
) M8 K1 v& h, g v( O# T# x( v, M map1.drawcoastlines() #绘制海岸线0 O9 l% e' B) @/ \5 {; ~* d
map1.drawcountries() #绘制国家
1 V6 H* @$ S' V7 t6 v5 Y map1.drawmapboundary() #绘制边界
8 N! [2 V0 |& `* M( i2 Y map1.fillcontinents(color=blue,alpha=0.5) #填充颜色- {, f$ {6 v, \( C( q
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
* M5 l3 E+ K$ L- N0 j" O map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线0 b& M( T! l7 Y, Z8 I
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)- X" M! C# T9 i- p9 m: g: R
map2.drawcoastlines() #绘制海岸线
8 v- @1 w7 o o) E% U- I+ q map2.drawcountries() #绘制国家) Q" _& i3 Y7 J! ~' t- J( }8 S
map2.drawmapboundary() #绘制边界
% s/ o- a% F7 N0 J. [% x map2.drawstates() #绘制州
" [: a. `) I. y s2 K( x. t( [* ^ map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
9 p, X6 W0 Z; ]) g+ V1 } map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线2 s# t- W# e5 ]7 `8 F. `% Q8 e
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线* f! B* t7 I2 u3 e' ^( p8 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)
7 Q9 j6 Z* m( o' z map2.drawcoastlines() #绘制海岸线1 {% O/ U0 M) H, L: V, [6 ^2 i
map2.drawcountries() #绘制国家
( y( b1 B, W8 n# \" _6 v map2.drawmapboundary() #绘制边界+ o+ D6 C1 V, W# D% y- o
map2.drawstates() #绘制州
7 R0 r# @( Q' t' n) w9 n map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线4 x4 t3 N3 t9 O) ~3 ?
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
3 R. l9 L: S) q/ z% D! R( F. z lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标+ g6 K& h6 \) {$ O3 Y, @+ S3 \
map2.plot(x, y, ro, markersize=8) #绘制散点图
5 ?2 }) s0 }! M; |8 S 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)
0 r8 `* F6 e0 \ map2.drawcoastlines() #绘制海岸线/ ?7 \ j1 H9 c5 ]4 w' G1 W+ f$ T
map2.drawcountries() #绘制国家) _2 D1 c7 B1 q
map2.drawmapboundary() #绘制边界
2 Q2 t9 J; i- K4 g) e1 T$ j map2.drawstates() #绘制州, Z5 P4 w% N8 Y4 j4 |$ f7 Y4 t
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
1 {! V1 l$ _; `! H map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
) l e! j' |' {* N$ | lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标4 X+ u# r4 m- j
map2.plot(x, y, ro, markersize=8) #绘制散点图
$ i T4 Y5 l4 U plt.text(x,y,New York) #文本注释, k. `. E2 X6 T% _+ M; g7 Q
+ N, N! E! K# `2 l; ~ 学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
+ w8 y% E/ u+ x8 } 本文来源于公众号:大话数据分析 1 s- ~! m: B* c+ ^" Z+ i2 f
更多实用的数据分析知识,请关注后,一同学习!
- m' l0 T5 m( W2 a+ o" C7 T* m' j% B+ L# w" Z
8 Y$ ^4 y, Z/ F7 }; Z- w$ W" I) v' W1 X8 Z- I9 n( |
) M {9 i3 K0 Y
|