|
% Q f+ ?# ^: z7 h0 a V
今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! # v7 w& F# n9 v: N6 O. S- S
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。 2 g( @- g- E, ]1 K5 G, s- J
在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库
1 K- h& T( t5 q; K; Q. e import pandas as pd. O" f# I8 w) E: g
import matplotlib.pyplot as plt+ z7 p! j Y' R& R4 B& }
from mpl_toolkits.basemap import Basemap
5 U0 @7 O- T# s$ Q8 a3 J) W, _8 c2 @ %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
1 t4 L! l7 I4 V+ |4 e! Y map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
" z) E5 n# S @& v: {3 W map1.drawcoastlines() #绘制海岸线
$ L0 ?% R! ]0 T6 a. S map1.drawcountries() #绘制国家
3 ^6 o/ z+ e, u; g3 N! t* y, e* v map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)5 X- k6 b$ ^8 w8 U! Q$ P* P$ m
map1.drawcoastlines() #绘制海岸线
: y( q8 u& {. i# e9 S( l* } map1.drawcountries() #绘制国家: [' |" Z! f/ D: L" e+ G
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色6 F" S- A* B: l$ j9 `& I
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)4 d1 G7 G7 d$ E; t- Z
map1.drawcoastlines() #绘制海岸线; F7 ]6 E' T9 b7 j+ ]9 j1 p
map1.drawcountries() #绘制国家
E: P q3 T1 k& [9 x& A0 K( i map1.drawmapboundary() #绘制边界
8 N7 u) m' i; P- ^* w { map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
' B2 O' D: u% d: d9 A, F map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
; B) ]+ }5 ], v3 I. c( y map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
. b/ D. |. K9 W: m: g& h map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
* h/ v# z0 Y: r" n7 Z map1.drawcoastlines() #绘制海岸线
w7 n D) W! u0 I, f map1.drawcountries() #绘制国家# x) C7 |) `- @7 V* G
map1.drawmapboundary() #绘制边界- Y% _7 o$ S3 U6 G# D& E5 i
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
+ a6 o; o! E* t3 B map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
, x3 I! `! e9 N8 h& M map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线$ W5 f/ H' y6 S4 D" _
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)
/ M/ S6 F, d% B map2.drawcoastlines() #绘制海岸线
+ u' ^. h$ G! J- f8 I' B& L map2.drawcountries() #绘制国家2 L0 x$ |: E% a- m5 G
map2.drawmapboundary() #绘制边界
# w9 Y4 D" H) o5 e map2.drawstates() #绘制州
" l) U P( m" `" ] map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
" `" L5 ~% ], Y! \( ] map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
. g8 ?0 e6 T" k, c5 J7 W+ C map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
! X/ V( q7 w/ T, f+ j3 t0 f" r 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)& y( t. ?. X3 J, w& n k
map2.drawcoastlines() #绘制海岸线4 z) H8 g$ P6 c; l; A7 S4 C
map2.drawcountries() #绘制国家
2 R, }9 u" X1 `5 M+ F' p" `$ Q: X map2.drawmapboundary() #绘制边界
0 c q$ \8 w/ i& ?* i map2.drawstates() #绘制州
# V+ f! S( u+ ?: Y map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
) h- B1 _2 s3 F8 Q* h map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
. O# Q- Z0 x9 C lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
$ Z- ~2 F2 E R, j7 v( l' \ map2.plot(x, y, ro, markersize=8) #绘制散点图
: R& X/ L) c* @8 n' w' @ 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); Q1 k1 x6 ?* g
map2.drawcoastlines() #绘制海岸线; G0 I$ v. r6 C" P9 W( A
map2.drawcountries() #绘制国家2 G) z. z# w- V8 K7 @* c- K
map2.drawmapboundary() #绘制边界$ k3 U+ }2 k) d7 q9 h, U
map2.drawstates() #绘制州
! Z. R( w6 V, W8 q( W1 A map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
0 f* a3 p: H: W0 v# X map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线 @+ ?+ f# D: N& U: r5 b
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标; \: @2 h% W. ?1 x6 Q7 M
map2.plot(x, y, ro, markersize=8) #绘制散点图" J0 T, q# t( A W9 F6 t) D6 ]- s
plt.text(x,y,New York) #文本注释0 U2 x7 }& ?, s& I1 ?' q9 w
" F9 e# l: y6 R8 }, s
学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
l( j+ F( O6 V 本文来源于公众号:大话数据分析
1 h! {& v. w6 H% }& F 更多实用的数据分析知识,请关注后,一同学习! " x6 o4 q4 d$ g/ f+ Z7 T6 V( X, R* v: E
" p1 `7 ?: |) N
z; V4 h5 ^1 x; D$ B: b/ i/ u* i5 z4 r. `$ L
* T* ^! b, ^( b, ^! w- v
|