|
# b( e+ ]" j! @0 e, u 今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧!
1 r6 K: X. E: A9 s# o, Q. N( Z3 b3 H7 m 可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。
" A a9 O% ?7 I# e" ?1 ~6 f& l 在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库' @; }3 X" S% g& U1 w/ S. \( ]
import pandas as pd* y. z' [! R8 W7 q( M x8 C
import matplotlib.pyplot as plt
; O) F+ J" x) b+ Y9 w0 B from mpl_toolkits.basemap import Basemap
4 s$ o! v9 Y+ `2 e %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
. j8 V5 D$ u0 i# d3 s# l map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)& a$ q( c6 i# X* x; |# w0 c* x
map1.drawcoastlines() #绘制海岸线
: j/ h' C! K( x1 X0 ]3 H) Q map1.drawcountries() #绘制国家
# r( O! k0 X, Q& N5 S2 y& `5 P map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)' r/ H. _. v: R) M
map1.drawcoastlines() #绘制海岸线7 C- D1 O2 W/ V" @) @8 c0 C& s: H' N
map1.drawcountries() #绘制国家
! P& {$ j) @1 c, z map1.fillcontinents(color=blue,alpha=0.5) #填充颜色7 E2 e6 i% X0 K3 g, S/ U( ?
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)( T( m/ w0 W" S5 H' d. p
map1.drawcoastlines() #绘制海岸线2 D* X. S6 N, M
map1.drawcountries() #绘制国家: R, [! C8 K5 d C0 Y# J5 @2 n+ T
map1.drawmapboundary() #绘制边界- z3 E% M" ^9 D' \
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
6 c) A( {4 K5 V; Y g/ x ^& e Y- z# C map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线- }- D5 T" f' j2 b
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
+ x% ?' z& q, R0 f/ }' y( s) U, ] map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)* N0 M1 l! A8 }; ^3 B& ~( F* l1 e! [
map1.drawcoastlines() #绘制海岸线1 u0 H3 p% e w6 H6 e1 E: W* y6 i! U
map1.drawcountries() #绘制国家 b2 {8 N, B/ i: B3 B- e* @
map1.drawmapboundary() #绘制边界
# E+ d8 O0 s/ w8 O map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
t9 Y: l" v" ?5 x0 X/ w! \ map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
$ I6 v: c, Z1 ~0 H, { map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
5 n, j8 b3 n& u1 K% M) W" Y6 K. F 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)
0 H# n2 J( p- Z7 `% K map2.drawcoastlines() #绘制海岸线2 v3 p$ ^ |" W) c; [
map2.drawcountries() #绘制国家
7 q# N9 H6 y- H; q* [( U8 T map2.drawmapboundary() #绘制边界
* u, G4 O5 K) I8 U3 Q: [. ? map2.drawstates() #绘制州
- M, w1 a" B/ I5 |+ t. p3 k& | map2.fillcontinents(color=blue,alpha=0.5) #填充颜色
1 u ?/ v2 A+ d( h- L' P' R map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
! m% t# ?' C% J8 U: s9 P: w" \- \ map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线2 n7 I3 a& p# B( A- x
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 s9 f4 \& l4 d P" B. l
map2.drawcoastlines() #绘制海岸线) q' ?# Z8 G: K% u- Q
map2.drawcountries() #绘制国家$ E# O; g$ W Y8 O$ N% R# r
map2.drawmapboundary() #绘制边界
7 C a" Q$ d# l& J( J map2.drawstates() #绘制州
) u$ B, e& r* }& ^ n0 `, P map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
) w5 l9 t1 ~, J- t map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线) t& A- j6 O. Z! z7 b& {8 k
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标3 I* o7 u: I* G; ]
map2.plot(x, y, ro, markersize=8) #绘制散点图* ^2 V' I8 [, \6 S0 t- f% G5 U
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)
* C7 h5 O7 D8 G/ \4 b/ l map2.drawcoastlines() #绘制海岸线
, I; a- E9 \& d) }3 T$ b map2.drawcountries() #绘制国家$ O2 a. a* M0 V$ w4 x. L
map2.drawmapboundary() #绘制边界: s) m4 {7 w- z8 A. z! O1 y
map2.drawstates() #绘制州
1 L2 z6 N: ^+ U1 e map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线, ]) q( O7 u! }& {0 P/ U& ~
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线+ n- j% w& p; O# N1 i) U
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标- Z( h2 D% ]7 M: B; e; I9 P
map2.plot(x, y, ro, markersize=8) #绘制散点图* m. v* z$ R7 n0 c1 H7 _) \: y
plt.text(x,y,New York) #文本注释
+ c/ D$ x, a- z) H
$ j: Y6 @6 V2 l+ R( b 学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。 2 F0 ^4 I( R! G' O! ]' `
本文来源于公众号:大话数据分析 # q$ o7 e# i' O& p
更多实用的数据分析知识,请关注后,一同学习!
8 N& o$ F, |0 b) G$ O/ y' x' d& m Q7 {/ e, f
3 T' @4 n Y: |! n7 L0 \: n9 n1 q' b
3 N( M' v8 [5 ], S e |