|
& m% W5 s8 x( { 今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! - s- T$ i! v, }4 m4 P- W& r
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。 t: v7 i# c3 s7 m4 R: @
在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库7 T( ~" d- B* b- J: }
import pandas as pd
" u6 X- @% Y8 Z. h2 K import matplotlib.pyplot as plt
( w5 k- w( N# p P. ]) d0 m from mpl_toolkits.basemap import Basemap
( b, p$ O. M/ ]& F' M %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
( R8 T9 R, D$ E1 Z" a- t map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
) `$ {6 {( L" J+ R& o, P, l map1.drawcoastlines() #绘制海岸线0 J" m9 q: h! f1 C
map1.drawcountries() #绘制国家5 z; s9 N& K! A1 E/ S+ J$ v
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
$ D7 K0 m, d+ n( ~# y3 U- e map1.drawcoastlines() #绘制海岸线
" @$ k; E" L, D( q map1.drawcountries() #绘制国家
& t/ t; c2 L. ^3 t X+ ? map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
: Z h: G' h* b+ P map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)& [7 w9 U+ V/ n3 m9 v, @6 b* h! U
map1.drawcoastlines() #绘制海岸线
8 v0 _5 v- y, ~8 D' v$ m map1.drawcountries() #绘制国家 q9 |/ I3 D* L' x- j+ @5 Z- G
map1.drawmapboundary() #绘制边界4 c* E( {' J* s* U& n. j
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
8 V- e \/ T/ K5 } map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
4 E: m+ c' l: x. N' j( b map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线$ `9 M* J. B- _
map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)6 X+ ~. k4 N- Y# `0 I5 ]+ a1 c
map1.drawcoastlines() #绘制海岸线
7 z: R9 ?# a9 h+ f7 F3 C' Z map1.drawcountries() #绘制国家: r: w. F. z# t6 Y8 W
map1.drawmapboundary() #绘制边界
% r# T3 G4 Q+ C" b( F" Q( V map1.fillcontinents(color=blue,alpha=0.5) #填充颜色( F9 L* X) b- U! U7 f( U- }
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线2 z& F& c2 C4 B3 C/ Z
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线6 d" N9 h: N6 \! @- Z# t1 [( 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)6 ^" m. i8 J: j9 g$ N8 q
map2.drawcoastlines() #绘制海岸线. r* O1 r1 D7 F0 t N6 `, ^
map2.drawcountries() #绘制国家. K7 b% ]% h) o5 p. q
map2.drawmapboundary() #绘制边界( h9 ]$ N, \) ^# Q
map2.drawstates() #绘制州" G/ l8 C O+ r- T8 x
map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
, R3 {- j! ?) B+ m9 k4 v map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
* F3 g6 Z6 X" p+ ?6 E# k map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
: ]1 g8 o) c% ]$ h) 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)
: {+ Z Q( ?) ` map2.drawcoastlines() #绘制海岸线' M3 ~8 G: j7 K. ~& R8 d8 V' U0 A
map2.drawcountries() #绘制国家
) G9 s; j) a! J map2.drawmapboundary() #绘制边界, D0 W C" z5 B, d/ f* k- \) s
map2.drawstates() #绘制州
6 ^- s5 G0 H, H t map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
7 D1 a6 l0 J/ A5 ^ map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线' v0 U' i6 `' v8 `% D; O+ N
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
" o. b; s8 C% I map2.plot(x, y, ro, markersize=8) #绘制散点图) ^% | F- l" _: A8 f* E
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): h5 b, L" ]( e& c9 U3 X
map2.drawcoastlines() #绘制海岸线
0 h/ O( X# y3 H; Z% u map2.drawcountries() #绘制国家: ]" p |) T4 W n* V" e
map2.drawmapboundary() #绘制边界
( y0 e9 B$ b4 J. i* @9 Z map2.drawstates() #绘制州
5 M/ L( ]# D8 @1 U map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
- r$ c$ m5 Z/ ^) V4 p# B map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
3 ]" l9 b7 x2 E lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
+ {8 {; p( q5 g. |2 _6 e map2.plot(x, y, ro, markersize=8) #绘制散点图
7 ?# m! i3 J; q, q/ S& I; {9 I plt.text(x,y,New York) #文本注释4 T, `, u/ ~" {# k
7 j/ n8 H: G& n4 m9 F 学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
. `+ x, G( n6 Z, V 本文来源于公众号:大话数据分析 ( r; n* q! V, g3 |$ p
更多实用的数据分析知识,请关注后,一同学习!
/ U" R% `6 \5 [$ C2 j3 T2 z m! C
8 E6 i: `: T+ ?% i0 S; T5 A6 |
6 D% l6 K8 W5 ~ u7 R p7 v# \
: P3 h( _6 |' U2 B4 J$ z( l/ J
|