|
4 ~9 P9 p2 a, V Y6 K( h
今天给大家推送的是地图可视化的知识,如何用Python实现地图可视化,地图可视化常用于地理信息系统,本节选用python中的自带库matplotlib,实现地图可视化,一起学习吧!
9 b# Q7 ^+ D0 r* H 可视化直观理解就是转化为视觉所能感知。可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地理信息可视化是运用图形学、计算机图形学和图像处理技术,将地学信息输入、处理、查询、分析以及预测的结果和数据以图形符号、图标、文字、表格、视频等可视化形式显示并进行交互的理论、方法和技术。
# g% [, ?; {; T1 n8 H3 G6 ] 在地理信息系统中,可视化则以地理信息科学、计算机科学、地图学、认知科学、信息传输学与地理信息系统为基础,并通过计算机技术、数字技术、多媒体技术动态,直观、形象地表现、解释、传输地理空间信息并揭示其规律,是关于信息表达和传输的理论、方法与技术的一门学科。 import numpy as np #导入库
O" Y" f& r- g( Y import pandas as pd
9 D7 x# _* P8 Z/ v import matplotlib.pyplot as plt- C1 S! G; ?. J6 G9 D
from mpl_toolkits.basemap import Basemap
/ i9 R. o+ F; ]8 W7 l4 ] %matplotlib inlinemap1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0): v3 h# U) z7 `
map1.drawcoastlines()map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)
! C: I/ M$ k3 Q map1.drawcoastlines() #绘制海岸线! X. o) c- u0 `! k
map1.drawcountries() #绘制国家. [5 ?" W6 m8 k5 s f8 j/ a
map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0): e5 d! v, [) M: `8 U/ @
map1.drawcoastlines() #绘制海岸线
/ W) r, f. l/ p7 v* _% k map1.drawcountries() #绘制国家" G1 m6 N K& M# ^
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
3 |5 u4 R' }/ }2 b8 I* Q' G$ s map1 = Basemap(projection=ortho, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)( S7 d, x5 G# O) m* M% _0 ~
map1.drawcoastlines() #绘制海岸线
6 T5 N w4 |; W" c map1.drawcountries() #绘制国家
8 \5 D, \# ^. Q0 o; t% [( K8 f; s map1.drawmapboundary() #绘制边界
7 q( {. W/ U. A) ^1 Z* y map1.fillcontinents(color=blue,alpha=0.5) #填充颜色
c/ I+ r5 S- Z5 |4 b; Z map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线% c3 }4 V! }$ M5 V9 w
map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
7 N, d" L3 b% [. G map1 = Basemap(projection=robin, lat_0=90, lon_0=-105,resolution=l, area_thresh=1000.0)) |* P5 r: N0 m2 y4 U" E
map1.drawcoastlines() #绘制海岸线
* \! L3 _7 s& b/ W" B map1.drawcountries() #绘制国家
! J* R1 r; }8 a; E- }5 P1 v$ q map1.drawmapboundary() #绘制边界( W+ d3 S; \ }: i5 t
map1.fillcontinents(color=blue,alpha=0.5) #填充颜色+ p# D" a/ L- O% Z+ T
map1.drawmeridians(np.arange(0, 360, 30)) #绘制经线
+ y" k6 W4 c$ P/ P& H map1.drawparallels(np.arange(-90, 90, 30)) #绘制纬线" g. p+ L, [ k/ s' p% g2 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)
# N0 j9 n0 \1 v1 S0 o+ Q map2.drawcoastlines() #绘制海岸线. S/ q& F' R/ K+ w
map2.drawcountries() #绘制国家
2 x1 S/ F7 r+ ~8 b' G2 k. C( S. x- I map2.drawmapboundary() #绘制边界
- G- x& W$ t& E3 m8 A$ M C1 o map2.drawstates() #绘制州
4 {9 J; K" t6 z0 R$ c, b2 _9 E6 f map2.fillcontinents(color=blue,alpha=0.5) #填充颜色- h: f- S$ a! f( @4 a6 m
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线5 }7 @. f0 \9 T- `0 K; _
map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线; x5 m2 A$ w- K
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)
; r0 @) u- i. J( V# o" _0 | map2.drawcoastlines() #绘制海岸线; _3 y" f s# L7 x1 J
map2.drawcountries() #绘制国家/ k8 {5 l6 }, A C- }7 C5 b/ O
map2.drawmapboundary() #绘制边界
$ t9 ~, r, Q6 L map2.drawstates() #绘制州, a+ F6 T2 b6 d8 s, J
map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
6 Z' U( i8 u% R% b! O# m- R map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线
$ C: B7 y$ l0 k# G' C lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标
1 O4 b$ R' \" i+ |" g9 L' a map2.plot(x, y, ro, markersize=8) #绘制散点图9 s% v& m0 E6 Z1 Y. w3 D* 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)8 U* `3 O) ^$ y+ l
map2.drawcoastlines() #绘制海岸线
5 f$ G" h5 k6 a2 e1 v0 F map2.drawcountries() #绘制国家
; F* g& r# V5 }8 B; E) k" I% x map2.drawmapboundary() #绘制边界, l3 `- c8 y5 \
map2.drawstates() #绘制州
+ ^, n- m/ U) L) r map2.drawmeridians(np.arange(0, 360, 30)) #绘制经线
% f( A8 I9 V& x+ y map2.drawparallels(np.arange(-90, 90, 30)) #绘制纬线2 l5 p+ ]% W6 D2 l5 a% h' C/ q" y
lon = -74lat = 40.43x,y = map2(lon, lat) #映射坐标! `" I5 e" J% D6 g. V
map2.plot(x, y, ro, markersize=8) #绘制散点图
& q2 a6 R( B4 z3 E! `1 L( t plt.text(x,y,New York) #文本注释
3 s6 ~/ _' q" N: e4 p) F* O
. U2 H: L0 Q* }% {, o4 @ 学习编程没有什么捷径可言,“书山有路勤为径,学海无涯苦作舟”。多学、多练、多总结。 7 t- i$ f ]/ M
本文来源于公众号:大话数据分析 7 l1 [1 p: [* c2 I4 U
更多实用的数据分析知识,请关注后,一同学习! 7 x: d/ A% N! A: d4 Z
' X, X, F: G6 e+ p3 D- z$ {% `9 f+ f- l: Z! v
# \1 a a) Q" Q7 H
6 p& v3 f% k( n, t* K5 o& [9 |8 ?- G |