|
, I2 B9 D N& K; z' }9 u. Q4 I 今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! & P. [: _$ B" G: r1 m
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。 4 K* W8 R0 I, N
在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库
) T8 L4 ~( N9 ?; o m import pandas as pd( b, j, \/ D9 y
import matplotlib.pyplot as plt" p/ X: G" n5 T- Z2 R
from mpl_toolkits.basemap import Basemap5 @& R* R% N2 a2 J& h$ @4 Q
%matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
" }8 b" u& k+ ]. P map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)' I& {2 x6 E& \5 i) {7 D
map1.drawcoastlines() #绘制海岸线
, G9 S2 ^, ~" X' H+ e; ?8 {& C& h map1.drawcountries() #绘制国家# W, ^4 r' t; B5 a
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
+ R0 Y- x. p) t1 }; L, F map1.drawcoastlines() #绘制海岸线( w4 r. m( d& N7 g7 T
map1.drawcountries() #绘制国家* [/ }+ w2 }' b
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色6 C" U. ~* W" g- {/ j1 X
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
. L. }: f: e5 N. A, @' r map1.drawcoastlines() #绘制海岸线+ }$ p; A( X, q$ B
map1.drawcountries() #绘制国家
/ w- U B2 [, C7 V4 b. V$ Q map1.drawmapboundary() #绘制边界
* K' z" K6 N3 g5 ` map1.fillcontinents(color=blue,alpha=0.5) #填充颜色6 a$ W5 H+ A" J# ^
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
/ U3 L9 a. F. r map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线5 f" Q- ?4 T% P. W( I' N6 k" v: b
map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0). K2 U( s: k' c+ ^
map1.drawcoastlines() #绘制海岸线
& ?; W: F7 I. z3 y h c map1.drawcountries() #绘制国家
+ \/ t a/ R6 i8 c# b map1.drawmapboundary() #绘制边界/ o2 _7 u& b+ y4 T+ d
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色. w/ f( y( s/ ~: T% P1 ^% ]: M
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线7 o& c/ W1 e, {1 |3 k9 F: P* V
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线8 l% N* r) B$ u2 r5 T- E1 M
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)
, t+ F# w T) P v2 J: a9 g map2.drawcoastlines() #绘制海岸线! a$ P3 d" { {9 P
map2.drawcountries() #绘制国家1 N& O- D! _" ^3 O Q+ M5 F
map2.drawmapboundary() #绘制边界' I9 O9 g- v+ t- v' F. X9 l: O, \/ b( V
map2.drawstates() #绘制州 S1 _: M4 c/ ~* C o* w7 H
map2.fillcontinents(color=blue,alpha=0.5) #填充颜色3 v* C" w$ K4 I% d5 D
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
8 }0 G& U, N# n+ f" C z map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
, |! w8 P3 U, d' c, T1 Y 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; A7 C w# q7 b/ T map2.drawcoastlines() #绘制海岸线# N0 k6 E. I) r# m9 a6 S* G
map2.drawcountries() #绘制国家8 c* {5 O$ f/ X
map2.drawmapboundary() #绘制边界0 ? G" F% M2 T( @
map2.drawstates() #绘制州7 e3 X4 `; P) V; Z! w
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
+ u2 }. I! ]0 P9 F- p; ` map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
9 D7 P4 x0 f+ ~ lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
8 ^7 t6 d3 P6 o map2.plot(x, y, ro, markersize=8) #绘制散点图' ?; x; ^! h! [7 |) w. 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)
' R" N0 r3 y3 k! T" [ map2.drawcoastlines() #绘制海岸线
4 z9 j6 H, p# a7 [) A+ v# {! R" M map2.drawcountries() #绘制国家
- y3 g- c" M8 V& G- A- `$ g7 n- n map2.drawmapboundary() #绘制边界
% o2 j/ ?# k" u, c+ X) ]) m map2.drawstates() #绘制州
* U" p( e1 _9 |- I* m+ B map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
2 z( u7 R7 u& ] map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
/ H0 B% U/ f$ [3 E. _* y9 l) I2 a& | lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标# r4 p+ ?* ^# V/ ?$ b
map2.plot(x, y, ro, markersize=8) #绘制散点图/ d/ n' w! J) }* y1 {" s" E: b2 _/ P
plt.text(x,y,New York) #文本注释
) U& c- F4 n7 n " e- f8 A. t5 @9 L1 G
学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。 ) N1 a* d" R, ?
本文来源于公众号:大话数据分析 ( }& ^- ^9 Y& R3 c
更多实用的数据分析知识,请关注后,一同学习!
& b! N( }- v+ f1 X' U& V1 H: Q
( E u2 I# U! m9 u
% i: h6 s; Q$ a! g3 ^- t# v* w$ k! h& O% V, y
, q6 k. G- F4 k
|