|
6 i# W% |' f! l
今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! , h% d' Y/ b1 y# S+ ^7 V
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。 + Q% }$ a# z c e6 Z$ Z* @" J
在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库8 U$ u0 T( p, @ t
import pandas as pd3 u5 Q* m7 P6 H& D& P
import matplotlib.pyplot as plt
8 _1 `& D% X5 h* ]- F/ N from mpl_toolkits.basemap import Basemap4 T" T0 D/ s: C e7 I
%matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
# |0 o- a2 {' c! ] map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)) B$ ^1 t3 m5 r( s
map1.drawcoastlines() #绘制海岸线$ v% \. ^; n6 N1 _6 h E3 c
map1.drawcountries() #绘制国家
- {- M3 h Y& B2 e& Q' p% x0 }6 z map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)6 y. R" f9 n. z; W5 Z' Y5 X
map1.drawcoastlines() #绘制海岸线6 H+ G3 H! x8 f1 f
map1.drawcountries() #绘制国家
* B) o; [ X$ }6 I2 A3 z; E4 V map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
' r c, {! g% M map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
3 k" G) ]6 h" H" m5 e map1.drawcoastlines() #绘制海岸线9 d" @% p5 `6 Q1 i. i* G
map1.drawcountries() #绘制国家
0 r$ l7 R" m) g+ M! } map1.drawmapboundary() #绘制边界
1 w4 z) w6 |4 P9 j' p8 `- k map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
9 H: F* y, @5 I& n map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线9 q! g; h& A, Y8 p2 {2 c
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线3 E, M) X0 H4 n( U
map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
/ u( u( M% V* J' j2 n8 Y map1.drawcoastlines() #绘制海岸线5 E' b9 h$ c* O% f8 {
map1.drawcountries() #绘制国家
8 D2 E+ b& c& j. { map1.drawmapboundary() #绘制边界6 A) y; |2 C1 Y8 `; {
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色$ {3 Q4 ?$ G' x$ e: E! F+ w# p: I
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线 H4 {. L* F- Y# u( m
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线; {/ G7 }0 _! O5 f
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)
( J: x7 N" J$ ?+ A+ x3 H7 @ map2.drawcoastlines() #绘制海岸线0 P9 e' W9 ^4 l3 x" H& O
map2.drawcountries() #绘制国家
& R7 M$ u- E% @0 |6 }& R! [ map2.drawmapboundary() #绘制边界: b" P R: b; H/ l, ^6 [
map2.drawstates() #绘制州
. L0 M/ Y, u* C% _0 L map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
1 {' I$ O6 @( Y: P4 l: Y map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线0 [* b) [$ [. X; B
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线5 V3 Z4 F; ^, {& x6 n" V( 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)
) f6 O- b/ j! d6 g map2.drawcoastlines() #绘制海岸线
$ k% J% I1 e/ W+ @* c' \( w map2.drawcountries() #绘制国家/ F/ |9 Q& L& f
map2.drawmapboundary() #绘制边界
@: V/ z( \& m! y! l& } map2.drawstates() #绘制州
* O3 a C. S2 Z3 ?6 Z/ _! P map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线' ^' G" s/ _. |
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
' ]" H! f# f: j: U% s) ]/ N8 z5 `/ w lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
8 K& {, R1 ?$ j+ \3 ^8 V map2.plot(x, y, ro, markersize=8) #绘制散点图
; s# p, v- w' R" E2 D: o" Y0 A6 | 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)
4 ^0 w7 D4 T* v9 D map2.drawcoastlines() #绘制海岸线
0 S6 T' g* C h8 S7 g/ u map2.drawcountries() #绘制国家
) D- Y9 O1 \$ J0 { map2.drawmapboundary() #绘制边界4 G. L- _6 n) T! t! a
map2.drawstates() #绘制州
% {: `' b8 M- h# j% v map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线( e- u3 r7 d7 e1 s
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
- B* H# h8 V, @6 J! M/ l E$ H3 d lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标" c7 y5 z3 }) |/ w1 x3 ~( C* d
map2.plot(x, y, ro, markersize=8) #绘制散点图7 |7 H& D1 Z: l2 q, Z) k7 |
plt.text(x,y,New York) #文本注释
- o! K! K) @" C4 D! G9 e6 n ( Z1 l" @, L5 D+ P) Z" V: G
学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。 " K7 X/ `4 ?$ d; U+ ~$ p* g2 V
本文来源于公众号:大话数据分析 ! @* d* u- @6 [
更多实用的数据分析知识,请关注后,一同学习! % A7 D7 `$ D" Y9 x8 j# z% S
" I: p5 g- N7 Y, m3 G4 \( [# v- ]# `) Q# ~1 Q( A: A1 I$ q. M
% z) x" f1 j+ o1 d6 N
$ ~7 ?! `& `/ `3 i) P' m4 z |