|
. S; R" o5 k6 {4 W; f% v
今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! * L( a9 R. ^: f( L" m/ l
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。 5 L0 y0 b" z- G' }" N9 s
在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库. e$ R3 E$ c& \ t! N1 T3 g
import pandas as pd5 E- Z& [$ k8 ]1 U) w( B y0 l& R' [
import matplotlib.pyplot as plt
( h- t* r4 ?3 ?3 m( r' Y from mpl_toolkits.basemap import Basemap" Y# |$ [9 d) G" A+ D
%matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0). {% V. R% C6 j
map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
: P/ @ h$ s# q2 ^6 G map1.drawcoastlines() #绘制海岸线
# E$ j& Y' d+ j; s map1.drawcountries() #绘制国家
5 B% e9 K) T, x! `* k: } map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
+ s$ p5 L5 \: n4 R1 R map1.drawcoastlines() #绘制海岸线% g* o2 X: n+ }. A) c, j% o
map1.drawcountries() #绘制国家% Q( F# `; @; t V% d6 ^
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
6 N5 i/ F7 f/ I. `# t: C map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)! Q+ K/ K+ ?* E$ S- ]& E7 h' o
map1.drawcoastlines() #绘制海岸线* O5 ]$ O4 Q$ \7 p# B
map1.drawcountries() #绘制国家- X, d) _1 H, V( W0 r, c" ?/ ~/ }
map1.drawmapboundary() #绘制边界
; O! X: U5 ?, f, w map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
! o; w4 F. @) Q map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
% x( T8 T# k7 Y/ Z3 |9 Y. }! B map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
1 E. Q$ H5 R" `1 H" v! \8 B+ X5 { map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0). n P3 t$ Z6 b& X, g8 s. {
map1.drawcoastlines() #绘制海岸线
! z X4 y9 G% w+ y map1.drawcountries() #绘制国家
$ o, C- }0 Z- ]+ G map1.drawmapboundary() #绘制边界
' l7 o- h# {8 t) _6 [$ A$ o5 o, l map1.fillcontinents(color=blue,alpha=0.5) #填充颜色8 R4 y ?/ i) @5 V
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
7 o, M- y" h6 G: ] map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线' {- t. u# G% d3 o2 Q6 |! 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)
; F( T, \5 k5 @( L# ~ map2.drawcoastlines() #绘制海岸线
) B: Y9 J6 `; l- i9 Z4 N; @5 ~ map2.drawcountries() #绘制国家 d# p7 X, G2 H6 n9 L5 V6 v$ u5 I# {( L
map2.drawmapboundary() #绘制边界1 v. Q" Z t8 t2 I* J
map2.drawstates() #绘制州
& O& b2 W# s7 N0 G9 e! N3 T map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
# S9 b( }! t* ~% T' I/ m% O& B map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线7 M) H9 L- [2 v$ i1 h+ Y: _6 S6 k; W
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
# [' k$ c% _0 z4 g- c0 g5 k$ 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)
3 z4 W1 W( |1 _, Z' G0 i _ map2.drawcoastlines() #绘制海岸线! n5 y; Z. @, f. w) Q0 Q/ K8 y. V
map2.drawcountries() #绘制国家4 ^2 k: p! @$ ]3 |2 t% B: t% C1 E
map2.drawmapboundary() #绘制边界
. C) h6 l' X, Y: b* r/ W% L map2.drawstates() #绘制州
) ?! h) B. p. M0 A } map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
( U" k3 Q# g, R, R1 M; e/ J& S; A map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线" u: ~0 G0 D8 A) n* c
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标' @" ]1 n6 K, f5 {+ x# `) r5 y
map2.plot(x, y, ro, markersize=8) #绘制散点图
/ n1 Y7 Q% Q+ a2 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)
. H/ d2 b& d9 h2 J4 T map2.drawcoastlines() #绘制海岸线
( n: @4 w. ~! x$ p3 |2 i: L1 z+ M map2.drawcountries() #绘制国家
' H% s5 t& |; S3 t9 N map2.drawmapboundary() #绘制边界
; t! M/ n6 |- w' K$ g+ ?. c8 W map2.drawstates() #绘制州
% b! x- T4 [ B3 s, E% H' o% e; j2 c" ~ map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
$ O4 }* ^5 P# u9 f" m6 R map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线9 Z% I5 }3 n4 w$ E
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
' R8 W; _) k9 l- J6 L; V: Z map2.plot(x, y, ro, markersize=8) #绘制散点图
& a2 q( l3 l7 H) l plt.text(x,y,New York) #文本注释
% C6 Q6 \; M% F( C: E0 m 0 T! G8 O3 A- V1 r4 `4 e3 q
学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。
0 b" u$ q& s1 _9 y: S4 ~' i 本文来源于公众号:大话数据分析
* I0 I P! G3 c: ]; K! [ 更多实用的数据分析知识,请关注后,一同学习! " m+ T: [8 z' c7 `& h) t# P
" ^8 B/ B2 g$ q
) \/ J9 ^1 q$ D) f
1 c, f' P( u" w9 a6 k+ y% T; v, ^- ^0 L6 p) M4 x( P- r
|