|
5 f) Z: x: U! ? 今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧!
" S' ] h3 e' u- X$ v 可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。 9 M4 {4 f; Q; |( w
在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库# a( i3 X5 @# ~3 E! Z& f
import pandas as pd
& x6 F8 T& w4 I import matplotlib.pyplot as plt% B0 T9 V+ E1 B; P) [
from mpl_toolkits.basemap import Basemap
# j2 y2 N8 q- l g, | %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
* v: p0 M0 ?0 Y7 n map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)* D- z% e/ [3 g" j4 y# c
map1.drawcoastlines() #绘制海岸线
3 a+ J- ] B! q- e& g map1.drawcountries() #绘制国家
) ^4 `% w4 ?, y1 ?/ e/ b map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
; c% V6 M+ y7 U. K0 @ map1.drawcoastlines() #绘制海岸线* M! r. w0 l* r8 d7 X
map1.drawcountries() #绘制国家
# D! c% ~) \5 K map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
3 _# ?1 U) h6 ], V" A map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)# q& ^# Z O5 `3 C* Z
map1.drawcoastlines() #绘制海岸线! Z! l3 o" ]8 L
map1.drawcountries() #绘制国家& i [) l8 [- j' x5 ]9 s. ]& L
map1.drawmapboundary() #绘制边界
2 z+ g5 S) }& F) M1 e map1.fillcontinents(color=blue,alpha=0.5) #填充颜色5 c; \; D) V7 D9 B+ u% D7 g
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线# }) }6 q5 \) W( w+ {6 I9 m
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
( y3 q* N/ R; y& h. m0 a map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)) s4 \, i( Y6 [
map1.drawcoastlines() #绘制海岸线
) `* s% ]% A. @ map1.drawcountries() #绘制国家
- R2 x* r( `3 J o map1.drawmapboundary() #绘制边界7 ^* X9 }# I/ S8 ~+ E* X% o* o8 E
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色, p i2 ^$ s5 s3 Z: y/ |+ n
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
6 m0 Y C0 {; R0 W3 Q map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
/ I; t7 V9 ?4 v$ X1 z 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 Q! w* x6 V map2.drawcoastlines() #绘制海岸线
$ V6 `; ]% S# O% f# P, |3 w map2.drawcountries() #绘制国家- V/ D7 b& k: G
map2.drawmapboundary() #绘制边界
/ l, K# q# o+ O- { map2.drawstates() #绘制州
4 @/ `3 h; {& q% x8 Z map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
$ n/ u1 D) S4 f* W8 z" O- I map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线1 Y" @" p- T$ d) t) T# ?
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线' C1 C3 X0 f* i" T
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)
+ O* }3 {4 Y( g map2.drawcoastlines() #绘制海岸线
+ e! ~" C0 t6 T" `& z4 P) c map2.drawcountries() #绘制国家
# r2 t# O: x6 r( N# @ map2.drawmapboundary() #绘制边界
2 S" }6 N' @, O3 u+ Y* G map2.drawstates() #绘制州- B: c* j2 W, d6 B# _" U# @
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线1 X5 p, B5 H/ B3 O0 R
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线# V5 W" [1 U7 k4 O' m5 |: D
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
% w; E, u! H( {( g ?2 x" |1 K map2.plot(x, y, ro, markersize=8) #绘制散点图
6 V. ]8 {/ H% T: k& U. J# o 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( v( A' r- u3 Z8 C# d+ e
map2.drawcoastlines() #绘制海岸线* y% }+ O8 y/ f8 ^$ S/ ~) ?, a/ I* F
map2.drawcountries() #绘制国家
" M( Q! p$ R, n0 Q8 k map2.drawmapboundary() #绘制边界) ~! H- U; l# `8 w S4 S$ J: r
map2.drawstates() #绘制州* h) l+ z5 T, {; S: s
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
# F* c# ?- J/ b/ Y) Q$ w) L map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线- J h' H6 Q4 M6 \4 }% N
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
4 i: `- U A5 k6 J/ v5 l d/ M6 } map2.plot(x, y, ro, markersize=8) #绘制散点图
# ~. T( o( n4 U( f( [8 s5 O. ?# R plt.text(x,y,New York) #文本注释
V- v5 u; d1 B% ?2 c
* U( R. g: n i! s4 h 学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
+ Z$ \& y- d) z7 A3 W& ` 本文来源于公众号:大话数据分析
s+ X2 p- H/ I: ` 更多实用的数据分析知识,请关注后,一同学习! 1 e# Q, `/ @, l; k1 q' b9 w
# Q! r+ ~: e( D) K- g
/ H2 a! R5 ?3 S |& o
, |$ L8 C( ]6 D: j& O" X* `- u! N
|