|
. ~4 u C5 ^! E1 ]7 K7 t' |" E
今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! ; [* a+ Y/ X) j- @3 O/ J
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。 : t$ U1 R7 O! m. V( L1 C& y
在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库
* f8 |% s3 f# r$ j9 q2 l% j import pandas as pd
$ M# B# G7 h7 `: B) Y8 t1 f import matplotlib.pyplot as plt& C; k. R5 r- @) P; X/ x9 v( ?# t
from mpl_toolkits.basemap import Basemap' M! D3 H W2 q$ C/ ]2 F+ K; l
%matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
9 q+ |$ D8 r5 ~0 M map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)+ J) _' K& A5 d. U) I7 z) Y9 `: Q" d9 S
map1.drawcoastlines() #绘制海岸线
; s$ v% |% _+ D! X2 m* `8 N map1.drawcountries() #绘制国家+ z' q. U3 F7 a5 }3 r
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
1 G; @$ w% |0 l+ o map1.drawcoastlines() #绘制海岸线2 N6 {$ x4 Z/ R9 w8 F- c) O7 d
map1.drawcountries() #绘制国家$ Q' t3 G7 J8 \/ O3 ~
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
5 M( |- l8 z; ]+ F map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)" U4 d9 g; q7 L0 ~- ]0 c4 @
map1.drawcoastlines() #绘制海岸线
- Y: e7 W+ x, l: h) j$ U map1.drawcountries() #绘制国家
( ?+ ]5 G, j3 d) v map1.drawmapboundary() #绘制边界2 R: [& S2 Q' p/ ]( `
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
. d' }5 H& N% R, B map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
2 |0 U$ ?& O' Z& Q' k map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
' y7 Q o2 b* o map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
0 K; ~6 s! p) @: H map1.drawcoastlines() #绘制海岸线
/ q% Y V4 b0 r: U# e map1.drawcountries() #绘制国家
- H' }& m9 k. w! k# ~4 _0 x map1.drawmapboundary() #绘制边界; w/ O7 {. O. E* Z, Q" T8 u
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色; n, x5 p# b. ^0 D! s
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线& o( A- }/ G4 n6 G3 A; {6 n* A
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
4 w- Q' H5 k7 O7 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)" O0 A) n% D; v
map2.drawcoastlines() #绘制海岸线5 g2 m3 |+ T' s
map2.drawcountries() #绘制国家
8 |, f7 V7 U4 W9 A1 M map2.drawmapboundary() #绘制边界) t1 ?1 V% H& s5 S
map2.drawstates() #绘制州
( Q3 H# Q' x) p- b7 l4 E1 _ map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
/ U4 k2 {5 F* Z1 n! Q1 v map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
# r ?, G$ |; j( P map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线3 m1 ~6 ?2 U; O, A& X3 m7 b2 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)$ R) Z" X$ n0 W$ `7 C
map2.drawcoastlines() #绘制海岸线; y/ F( G' W' k: v0 Q8 @
map2.drawcountries() #绘制国家3 d' q9 Z6 v' B4 V9 J/ m2 R& {
map2.drawmapboundary() #绘制边界
3 m4 X5 w1 ^ h4 {) } map2.drawstates() #绘制州
v" x: F8 `+ i6 [9 U map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
& T/ \0 S$ x$ E- U7 Z, S% r map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
$ Y+ Q& h; S O2 Z. }4 @8 R8 h U lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
' d$ V' v4 l; z1 H, t; D0 {4 Z map2.plot(x, y, ro, markersize=8) #绘制散点图% p$ V! V# l: a2 v
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)$ D) B9 L: [5 P
map2.drawcoastlines() #绘制海岸线" w$ k; ?* l( f
map2.drawcountries() #绘制国家
! }$ X. i1 k: O map2.drawmapboundary() #绘制边界' P) u) }- Y5 D. r& L
map2.drawstates() #绘制州1 L9 Q+ O. _2 p& {6 U
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线4 a# q& \3 y& h; n+ U
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线" d$ H4 V5 y! U8 |/ }; C* B6 ^
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标% \" U o; h4 W' h
map2.plot(x, y, ro, markersize=8) #绘制散点图
0 Z2 }6 N5 W/ _0 G plt.text(x,y,New York) #文本注释
/ T8 t8 |9 H2 s( H& c; Q* B2 m) j
: m3 t5 x9 c; a) g' p; m 学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。 - J8 @# u7 h* L4 q* y/ f" @+ O p
本文来源于公众号:大话数据分析
p$ s3 x9 V& O$ ~3 _ 更多实用的数据分析知识,请关注后,一同学习!
4 E& S- f# Z- C$ }+ e% l( E
! F: ~ B c5 C% c. ?1 p! X8 S! ?+ X; p) _6 L
& M9 H9 ]3 ]& n, ?# D- {
# l* S, Z$ }$ o
|