关于数据挖掘:R语言地理可视化中国国内航线航班信息统计绘制分布夜景图

53次阅读

共计 3588 个字符,预计需要花费 9 分钟才能阅读完成。

全文链接:http://tecdat.cn/?p=31693

原文出处:拓端数据部落公众号

最近,有一种说法:“中国经济倒退的命根子就是石油和航线”。因而,航线的重要性显而易见。

近年来,中国的航运业倒退迅速,不仅带来了经济效益和社会效益,也带来了待业岗位。因而,咱们有必要剖析航线散布情况。

为了更好地帮忙客户进行航运业务、航线设计、港口定位等决策钻研,咱们应用基于 R 语言地理信息系统的中国航线散布可视化。该办法利用地理信息系统的空间数据库治理性能,对中国各航线进行统计和剖析,并基于 R 语言统计分析工具,对剖析后果进行可视化解决,生成中国航线的空间分布图。

读取 地图绘制所需的包

以下软件包均是绘制地图相干的。

library(maptools)
library(ggplot2)
library(ggmap)
library(maps)
library(rgeos)
library(shapefiles)
library(geosphere)
library(plyr)

获取地图数据起源

航线、机场坐标

机场: airports.dat

航线: routes.dat

板块地图 都市地图

世界地图: ne_10m_admin_0_countries.shp

都市地图: ne_10m_urban_areas.shp

# 读取都市地图文件 读取幅员地图文件  
urbanareasin <- readShapePoly("ne_0m_uranareas.shp")  
worldmapsin <- readShapePol("ne_1_admin_0_countries.shp")  
# 以下为格局转化  
worldmap <- fortifyworldapsin)

这一部分的次要工作是将 shapefile 文件转化为 R 能够辨认的格局,而后建设数据与地图坐标间的关联。本文应用了航线频数来计算地图航线绘制的亮度。读者依据须要能够自行关联所需数据,例如老本,均匀老本,旅客人次等,以达到不同的钻研目标。

# 开始抽取机场数据  
airports <- rea.table("airorts.dat", sep = ",", header = FALSE)  
worldport <- airports[airpot$V5 != "", c("V3","V5","V7","V8","V9")]  
names(worldprt) <- c("city", "code", "lan", "lon", "att")

有 453 条航线无标识

  
table(lineinworld)

summary(worldline)

统计局部国内站点的登程的航班信息

# 北京登程航班  
 head(worldline[worldline$AIRPORT_FROCODE=="PEK",] )

排序

e$AIRPORT_TOCDE)[2,],  
      decreasing = TRUE)))

北京达到航班

head(worldline[worldine$AIRPORT_TOCODE=="PEK",] )

上海登程航班

head(worldline[worlline$AIRPORTFROM_CODE=="SHA",] )

上海达到航班

head(worldline[worldline$AIRPOT_T_CODE=="SHA",] )

香港登程航班

head(worldline[worldline$ARPORT_FRO_CODE=="SHA",] )

地图旋转

这一步是对地图进行坐标变换,设置中国为世界核心,这里做了简略的坐标加减运算。

center <- 115

# 航线坐标计算中心间隔

gcircles$long.reenter <- ielse(gcicles$long < center -

因为地图是图形数据,若是简略挪动,地图会被切割,绘制时会呈现图形变形等谬误,故须要对地图数据进行再解决。该过程分为两步:

解决 1 :图形切割后,切割图形重分组。

解决 2 :重分组后,非闭合图形,闭合解决。

切割图形重分组 算法

检查组内不同经度 300 度以上 的坐标,作为极其值,而后对数据进行 均匀 。而后别离对极其值分组标号为一组,将低于300 的坐标作为一组。

 

闭合曲线

别离计算世界点图每个航线的起始点 起点,和航线的曲线数据 . 找到曲线数据中不间断的数据即为没有闭合的曲线 , 而后 , 将断点数据从新赋值 , 进行连贯 , 失去闭合的航线曲线 .**

g <- rep(1, length(df[, longcol]))

  if (diff(rage(df[, lngcol])) > 300) {d <- df[, longcol] > mean(range(df[, longcol]))

开始写原始算法替换函数 世界地图重分组


 

#计算世界地图的经纬度的均值

worldmp.men <- agregate(x = wrldmap[, ("long.recenter")],
                           by = list(worldmap$group), FUN = mean)
 

#计算世界地图的经纬度的最小值

 

worldma.min <- aregate(= wrldmap[, c("longrecenter")],
                          by = list(worldmap$group), FUN = min)

 

#计算世界地图的经纬度的最大值

 

woldmap.ma <- aggregate(x worldmap[, c("long.recenter")],

                          by = list(wormap$group) FUN = max)

 

worldmap.md <- cbind(worldma.mea, worldap.in[,

                                                 2], worldap.max[, 2])

#给数据的变量名命名

colnames(worldmpmd) <- c("group", mean","min""max")

 

worldmapt <- join(x = worldmap, y = wolmap.md, b = c("group"))
# 闭合曲线

worlmap.rg <- orldmap.rg[order(woldm$goup.regroup,

                                 worldmap.rg$order), ]

最初失去世界航线的曲线和坐标 (wrld) 以及城市航线的坐标 (urb), 并应用 geom_polygongeom_line函数进行设置 . 其色彩 粗细等。最初应用 ggplot 函数进行绘制。


urb <- geom_polygon(aes(long.recenter, lat, group = group.regroup),

                    size = 0.3, color = "#FDF5E6", fill = "#FDF5E6",

                    alpha = 1, data = urbanareas.cp)

# 放大系数

bigmap <- 1

geom_polygon(aes(lon,lat,grop = group), size = 0.2,

               fill = '#f9f9', colou = 'grey6, data = worldmap) +

  geom_line(aes(long.recete,lat,grup = grop.regroup, clor = freq,

                alpha = freq), sie = 0.4, dat = gcicles.rg)


最受欢迎的见解

1.[](http://tecdat.cn/r%e8%af%ad%e…)R 语言动态图可视化:如何、创立具备精美动画的图

2.R 语言生存剖析可视化剖析

3.[](http://tecdat.cn/r%e8%af%ad%e…)Python 数据可视化 -seaborn Iris 鸢尾花数据

4.[](http://tecdat.cn/r%e8%af%ad%e…)r 语言对布丰投针(蒲丰投针)试验进行模仿和动静

5.R 语言生存剖析数据分析可视化案例

6.[](http://tecdat.cn/r%e8%af%ad%e…)r 语言数据可视化剖析案例:摸索 brfss 数据数据分析

7.[](http://tecdat.cn/r-%e8%af%ad%…)R 语言动静可视化:制作历史寰球平均温度的累积动静折线图动画 gif 视频图

8.[](http://tecdat.cn/r%e8%af%ad%e…)R 语言高维数据的主成分 pca、t-SNE 算法降维与可视化剖析案例报告

9.[](http://tecdat.cn/r%e8%af%ad%e…)python 主题 LDA 建模和 t -SNE 可视化

正文完
 0