|
7 l) p1 @( u# q- C5 E
今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧!
g$ ~$ f5 |; S) H3 V3 N: X 可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。
: ~$ f: W, ~+ M' p* z% x 在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库
, j3 B: G! T* ~5 u import pandas as pd
! |6 z9 r$ G( n* I. l, s import matplotlib.pyplot as plt
3 Q1 R3 N+ y% C: f+ Q' y7 {) g; n" v1 r from mpl_toolkits.basemap import Basemap
! k4 ^4 ~, q, ]; i& R %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0) q( }; ?# t$ D
map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)" o, z. K9 v- H! _2 @
map1.drawcoastlines() #绘制海岸线: Q) J. g8 q+ o# ^3 _' g
map1.drawcountries() #绘制国家
# v3 W: w" F% a+ g# @ map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
: O* ~2 p N' V3 R5 e" d, z map1.drawcoastlines() #绘制海岸线
( M# N$ a/ p+ q2 g$ p9 k! @. ] map1.drawcountries() #绘制国家4 j8 i# u$ |! e- v
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色, u; S" L+ t' C1 m+ I
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
4 K( z+ g/ E' s! ^( K* B( D8 j map1.drawcoastlines() #绘制海岸线) T5 k5 D+ q) h
map1.drawcountries() #绘制国家! s' R+ _# A5 z* b/ [$ v/ }
map1.drawmapboundary() #绘制边界( X" ~+ }, @$ R6 `
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色" k; c& w8 t) l& ~, W1 D: M: M1 N
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
. U4 C' V1 B( v% \) T7 M map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
( h& \5 F, r+ \' ~5 {/ u3 t map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
. J, G- i; q/ a1 E map1.drawcoastlines() #绘制海岸线
9 A8 n) d% V2 O3 k, a. I8 @+ e map1.drawcountries() #绘制国家
$ I$ M. Y8 ]" h) T$ Z( l& A1 Z# W" \' ~ map1.drawmapboundary() #绘制边界# y* l" s/ M6 k# u4 s
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
& R7 l% a; f+ O- P" Y" R map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
& V; F. d7 n6 ?/ ^0 \, [ map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线! G8 c) K3 N8 P3 T! J' `
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)
( W" ~: ^6 G% ] map2.drawcoastlines() #绘制海岸线
' B$ D9 Y9 a8 s8 [' C/ ^ map2.drawcountries() #绘制国家+ l U) c' r. p t4 R$ c
map2.drawmapboundary() #绘制边界
( v' i& U* _6 A- j1 Z map2.drawstates() #绘制州3 e( ^) m: a, {; _) G* ~
map2.fillcontinents(color=blue,alpha=0.5) #填充颜色$ B$ o7 Q' V+ H0 r6 b
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
2 j4 w4 J% [$ S, v& t G/ j map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
6 d( {2 Y& S, \6 D: T, 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)% K: K V4 B0 \8 L1 H' U% _
map2.drawcoastlines() #绘制海岸线/ @6 h% C$ V* | ~; \9 W/ W
map2.drawcountries() #绘制国家
: ~4 G# O/ r* v' b6 l map2.drawmapboundary() #绘制边界
" A4 O2 }5 u L8 i9 d3 N% q map2.drawstates() #绘制州
) ?8 s; ~5 I9 h+ f% n map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
5 ]& t9 q* Y( T( ^* p map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
% i$ w& q5 u) {* [ lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
2 h" h6 R4 O5 L. s4 c& y$ }5 o/ I; _2 H# L map2.plot(x, y, ro, markersize=8) #绘制散点图+ ~/ P# p `' b0 f3 A0 l
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)2 a8 |# T" g& c+ u- J, L) K N8 B
map2.drawcoastlines() #绘制海岸线
) X% }9 M- A1 u: o; J map2.drawcountries() #绘制国家
% n: }" H, F3 E- s, x0 s map2.drawmapboundary() #绘制边界
. J* X6 e" S9 h% A$ a' Y map2.drawstates() #绘制州
- Z3 y! u) `0 x( Y& t2 U4 ~9 K, I map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
3 \) l0 E7 I" f/ d; y7 }- V map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
! L- h6 b6 ?: G0 j+ ^1 P& X! ?) q lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标- F1 a% D! h4 Z8 w2 k% {2 Y) f
map2.plot(x, y, ro, markersize=8) #绘制散点图% A, z+ E$ J& C1 t2 L6 U$ f7 k
plt.text(x,y,New York) #文本注释
0 X6 H# w% D$ b% O : C- e, N' P5 q* H& w* L
学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
( }: }, Z( I2 q7 [9 J$ ]/ U 本文来源于公众号:大话数据分析 & d1 ?- Y7 Y, B) u5 i( |0 r5 i
更多实用的数据分析知识,请关注后,一同学习! % m1 j9 ]- R$ k8 x! s% @* _' u
4 M# p! c3 w C' E% c: q4 P
6 P! d! K, l8 e% n
3 L, f* i' b! {, v* F3 c P% b; B
" q4 }. X, P, Y: y9 H- b" ~) w
|