|
5 A: x f% |& A 今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧! # T [ @4 K9 ]/ V
可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。 1 F; [9 v/ ?# Q+ {. R
在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库# b- O: Q7 ?' @: U, T6 o2 `& w
import pandas as pd4 s! C% h6 O( _5 _: n
import matplotlib.pyplot as plt; G$ H8 N0 t# G- R1 ~; l$ l. g
from mpl_toolkits.basemap import Basemap/ n+ t0 P) M, S9 x, W& C
%matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)2 w9 x- v9 b- ^( f4 V7 e2 p% ]
map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)% S6 c4 ?. f7 { h
map1.drawcoastlines() #绘制海岸线
2 U6 l4 @$ ]3 B' n map1.drawcountries() #绘制国家
" V1 y8 _: M# W4 V+ X0 O map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0): s& R8 a+ }& i9 A- F
map1.drawcoastlines() #绘制海岸线( B: n8 V9 y9 p% a3 C3 ?
map1.drawcountries() #绘制国家
' z2 \+ y. d, d! C# C; G map1.fillcontinents(color=blue,alpha=0.5) #填充颜色) g8 h. Z7 ]! L6 ]6 R
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
3 T- n0 A O* Q; N. L map1.drawcoastlines() #绘制海岸线! q) T) e: S) O" f! E. v/ g
map1.drawcountries() #绘制国家' w; @) C5 r, H* C9 @& _% v
map1.drawmapboundary() #绘制边界
5 Y$ P9 J3 c8 d+ x9 d- j map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
* j; U* F7 P6 v6 `/ D& E6 r. H map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线% a6 D5 u4 T& P4 q; J
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线2 [6 h" \- k, F$ b& n
map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)# z0 b8 G2 H+ } W' s* y1 o
map1.drawcoastlines() #绘制海岸线* z Z, {6 u9 r% ^9 W1 c
map1.drawcountries() #绘制国家
# O, e1 ~8 F$ X, r. D' k map1.drawmapboundary() #绘制边界
1 f; s+ I# Q1 W8 p0 }" \ map1.fillcontinents(color=blue,alpha=0.5) #填充颜色* J1 Z7 J0 g5 ?: L1 e% @! w
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线6 F8 ^7 t. q; l' `3 n- o; u! ~
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
* j: w+ D% q6 _& t8 j$ E 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)
& m6 M# C5 c3 K! ~# t" C' \% O! T map2.drawcoastlines() #绘制海岸线
/ C* S' V' E5 B: ~ map2.drawcountries() #绘制国家
% G$ [" [1 G# [; h- N map2.drawmapboundary() #绘制边界
7 f9 k9 J- z& J/ D; l# i6 s map2.drawstates() #绘制州3 X& _ S4 x4 y+ D0 y1 ?
map2.fillcontinents(color=blue,alpha=0.5) #填充颜色1 n; C7 L3 b4 S+ l& {3 Z2 a% ~9 o! l9 I
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线* A4 S1 y9 ^( O7 G' U
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
! \+ Y: H! j9 H; o/ l C' `% a 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)
- e- G: ~/ |3 F! l5 V2 A map2.drawcoastlines() #绘制海岸线
7 O; C- `5 z) X, c* k2 Z map2.drawcountries() #绘制国家4 W0 H3 `5 C& ]' e7 V
map2.drawmapboundary() #绘制边界
& Z I7 {9 f% Q' g0 m2 D9 c/ y# v map2.drawstates() #绘制州
" m6 F# o+ q U s( y map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
& L' H' c- m3 ^: R) t# O map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线( a. I+ ^! ~, h/ F0 |- x( Q t/ A
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
. j, X1 L- L" `$ s map2.plot(x, y, ro, markersize=8) #绘制散点图
7 i# z5 G# P9 I 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)7 G0 k$ N7 q1 j, U+ B
map2.drawcoastlines() #绘制海岸线- U! g3 N1 a# E) q% s1 z: u
map2.drawcountries() #绘制国家
( ]" q1 _5 D5 V8 K: V map2.drawmapboundary() #绘制边界
: i, Q, T/ X. t( w5 U- h map2.drawstates() #绘制州
, Q) ?( P0 k9 z8 ~6 b. U$ Y1 ^2 u$ Q) p map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
: I. A1 ?' c$ Y$ L0 i8 Q5 A map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线6 r3 `" n% U% c" ^2 j
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标- _; C0 f0 W; }4 o" @) c+ B
map2.plot(x, y, ro, markersize=8) #绘制散点图
% D8 v2 |* k S9 |: N plt.text(x,y,New York) #文本注释* ?+ S q6 U1 J( g+ \
) k" p4 P+ w$ m) \$ X 学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。 ( ]5 r1 }- E; e+ U' q m
本文来源于公众号:大话数据分析
; A" ?0 t- J: n9 L 更多实用的数据分析知识,请关注后,一同学习! . P: A& r4 @# H) N' E
! t( ?$ {2 O3 H3 n! ?. M
/ i! `6 B) X6 L& L I
2 _5 z5 a3 V4 @* k" Y; ^) r6 }
/ k" N7 m. _- b5 d* n. R |