|
7 x3 |" b6 b9 i% | 今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! 1 o8 ?# U r! v: O" E+ Z' r0 y
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。
% m5 ~* ~! z# T0 u 在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库: M, s9 @- y; G* x! K/ T' N- Y; m
import pandas as pd9 m% A. i" H/ ?# z5 X
import matplotlib.pyplot as plt
w2 n# [ a* H- Z$ A4 Y5 w9 H3 M from mpl_toolkits.basemap import Basemap
9 j4 i% G& B1 V %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)0 R i* n/ b3 M$ l3 ]
map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
: ^0 d- e" t) X X map1.drawcoastlines() #绘制海岸线% n0 O0 F& R1 Z/ A o3 a
map1.drawcountries() #绘制国家
2 l$ }( S1 h( i1 N/ h: t, k7 D map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
# \3 R% |4 v! ^- m map1.drawcoastlines() #绘制海岸线
8 g2 z. l. p& m5 I5 \' q( d: J map1.drawcountries() #绘制国家, Q' ~: r+ z/ X" M& }3 j& ~
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色 e) _* b' j5 s" P5 c2 T6 a3 E
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)9 \& }1 D* f9 r) B O
map1.drawcoastlines() #绘制海岸线
1 D3 `. K: O6 u' E; s2 [' n- h6 _ map1.drawcountries() #绘制国家$ S, Q0 u( w# q1 N1 v
map1.drawmapboundary() #绘制边界: M1 n1 b4 l3 o* z
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
. p! y# |: b9 b0 U; S$ I w" l map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
, r0 D) d; `; a( Z map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
7 D$ n) x) n2 Z2 H2 N. K4 Y. ?: \0 l map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
. n1 Y O+ ?9 ]. a, t2 Q0 t2 M3 Y% S map1.drawcoastlines() #绘制海岸线
, m4 E+ T; ~3 { map1.drawcountries() #绘制国家6 z/ ^ }% C7 q# _$ S! T; H
map1.drawmapboundary() #绘制边界/ K5 S8 j$ ^+ w. T
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色% U7 U" [) P" R- [" u- u2 E; ^7 w
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线1 a2 w- D+ ?; j
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线% S3 Q: Y. L. A2 I) c
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)8 Z$ r" a* j. R4 B
map2.drawcoastlines() #绘制海岸线
4 D- Z: c- I2 s2 u map2.drawcountries() #绘制国家9 a- i# M% p2 S1 y9 L& a# \
map2.drawmapboundary() #绘制边界* D* F! }7 n: U; {
map2.drawstates() #绘制州
8 g O6 ~/ c' R8 o* n map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
0 h( }" Q; r$ M map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
* r8 s" e9 Q/ |$ ~0 l" O map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
9 K9 i% |. N; A: q; ^) X! O6 Q2 G 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)3 y9 o+ ]/ [, E: ~" b
map2.drawcoastlines() #绘制海岸线
& v4 S) D; ~( M! m# k map2.drawcountries() #绘制国家
: C$ V4 a$ U- g map2.drawmapboundary() #绘制边界
3 n, w# f# I% P) R3 @. J7 @+ i map2.drawstates() #绘制州( f0 B. K: H. }" P
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线, M6 c: F, K; z' |! n' m6 T9 V
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
- c: m; T2 m) k3 z" h* I lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
' @) d( _4 r L% k map2.plot(x, y, ro, markersize=8) #绘制散点图& R2 B: s+ h$ A7 p- u
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)
3 [5 z3 @7 U6 ?1 P3 D, |- ~$ }; o map2.drawcoastlines() #绘制海岸线
9 o. Q3 p# k; U1 B. H3 D map2.drawcountries() #绘制国家
- E. J2 x# x7 f* X4 X1 c map2.drawmapboundary() #绘制边界
2 N* U3 K1 p k2 C& n% H) w map2.drawstates() #绘制州" D& t8 S- {2 Y4 a( A
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
" s% W( R0 e' U5 ] map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
8 o U; ], x& I# M0 m. ~ lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
L8 R5 ]) a: E/ J+ w- E9 v map2.plot(x, y, ro, markersize=8) #绘制散点图
. S6 d j1 w( U9 O4 _" o% D plt.text(x,y,New York) #文本注释0 P1 k% _2 d& F8 O, o
( g8 q1 q! b' c& P2 w+ I+ x
学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
# l, D3 }# u! P4 a; z6 M 本文来源于公众号:大话数据分析 2 J0 |5 w; X* u% T+ }1 u1 o
更多实用的数据分析知识,请关注后,一同学习! ) A9 r1 a5 x9 @+ R& x- I; K
! y4 J% t X$ e- l7 ^0 W
- |4 m n7 ?! L0 z# ]! v
) ]( L7 Q/ F( M h" R- f7 ~2 Q* @% p8 d% O0 r8 U
|