' ?. _& L0 b ~! j
今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! # S7 Y0 m$ t3 H1 u3 x
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。
! ~9 W q0 d4 p, f" L 在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库" \3 W6 J% _6 ~$ }: i6 d
import pandas as pd
5 n- c u0 i, u7 Z& H! N! e- R$ W import matplotlib.pyplot as plt1 Q, p, g( `; Q/ Q: U
from mpl_toolkits.basemap import Basemap- n$ W0 j& G- x! ^9 p
%matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)4 _% }' R7 s' G w
map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
( Y/ B2 x: W# Z/ j/ c& i( h map1.drawcoastlines() #绘制海岸线1 S9 K& Y& u P& ^$ C
map1.drawcountries() #绘制国家
9 \3 V. d! u' L4 p map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
( A$ n. O8 c: v d0 d map1.drawcoastlines() #绘制海岸线
& q" R! S& P& l map1.drawcountries() #绘制国家) u0 ]+ }/ I! f3 I. j1 D
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色5 e$ M& t. ]% h# w
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
+ B3 g% Y0 N N f; M9 g7 b1 L. @ map1.drawcoastlines() #绘制海岸线
' _/ ?1 [9 Z G1 H6 R map1.drawcountries() #绘制国家
: p( r1 q8 P g2 J map1.drawmapboundary() #绘制边界
/ R5 C& g- F% n0 g0 [# T/ g' W4 U map1.fillcontinents(color=blue,alpha=0.5) #填充颜色5 @ [" _9 i. m7 q
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线3 q0 y6 b4 h) m8 h p
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线; b1 K& r. d% X8 W- A# ^/ O
map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
$ ]* A; a( v* w' `+ o3 a1 ^1 U! ]* j map1.drawcoastlines() #绘制海岸线( i; |: Z( u m" d2 a; s
map1.drawcountries() #绘制国家
6 D0 {# |! w+ C8 s! p; g- s map1.drawmapboundary() #绘制边界" G, _8 B$ @8 g* w1 [" l
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色2 w6 k2 a. L& W. A" ^1 O+ s+ H4 ?
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
I) F: D8 X. C* N map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线1 U8 v% `7 m, k* 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)
6 N O, Z2 I/ L6 f6 h o& R6 j map2.drawcoastlines() #绘制海岸线
+ J* \ C8 j- P0 U$ w0 Z0 |$ d+ [ map2.drawcountries() #绘制国家3 L) Y1 }) l# M# j2 C; `8 e/ m
map2.drawmapboundary() #绘制边界
2 V* q3 U _$ `4 | I5 g* E map2.drawstates() #绘制州
. }" i4 u' X J! u. m map2.fillcontinents(color=blue,alpha=0.5) #填充颜色! G [8 w- F1 u7 N
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线) _5 x2 L/ D6 N
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
2 G S/ z( g5 ~6 C 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)) g4 `) J `( r; S
map2.drawcoastlines() #绘制海岸线
' X, j* i6 L) h map2.drawcountries() #绘制国家
" s- z7 n) W' P4 H2 Z map2.drawmapboundary() #绘制边界( |0 ^/ H' Z" g) o2 t- s" X C
map2.drawstates() #绘制州 ^. @9 G$ Z# z$ l0 M
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线5 C1 o: z* G5 }
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线/ i8 ?. o/ y) |) y* Q# _
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
( G! S) V. J2 q7 o4 p map2.plot(x, y, ro, markersize=8) #绘制散点图' g. Z5 O' Q, n
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)
# W2 W) m; q% ^0 L; r T map2.drawcoastlines() #绘制海岸线
; f3 S( p# z e6 j6 h N# v& d map2.drawcountries() #绘制国家
& g _9 c7 x9 Y) f* }4 h map2.drawmapboundary() #绘制边界
9 i' A% _% O1 h$ Z$ X2 I8 \8 [9 J map2.drawstates() #绘制州: l; q* N& N$ e+ E0 Q2 Z
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线4 Q; z+ M! O4 a) N- ]+ ?' R
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线0 h2 \* Y, I; o; ~; F# K
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
- z8 T, ]* x9 X, }1 t( z8 n map2.plot(x, y, ro, markersize=8) #绘制散点图
( l. l' d* J8 }. ~( |+ S plt.text(x,y,New York) #文本注释
; ]' T, \ N6 Z" S & |- y6 N! L0 z# v3 ?- _, @6 {
学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
* M+ M3 i( g9 }/ k- \ 本文来源于公众号:大话数据分析
( k5 \6 B b$ M: P7 f1 g; e1 ` 更多实用的数据分析知识,请关注后,一同学习! ; k) P" W6 N, a4 I5 ^
( B6 G6 j6 r d: a F) n: `! e5 N8 x& h
2 j1 ~" ~( v6 J. r# Q n5 [
/ T3 l+ S$ f7 l- k- c7 Q c( q |