无码日韩精品一区二区三区浪潮_99国产精品久久久久9999高清_亚洲熟妇无码久久观看_亚洲a∨无码一区二区猫咪

微信掃碼登錄

其他登錄方式

綁定手機(jī)號(hào)

注冊(cè)

忘記密碼

用戶(hù)協(xié)議

綁定手機(jī)號(hào)

近期有不法分子打著愛(ài)盈利的旗號(hào),制作“愛(ài)盈利”名稱(chēng)的App,并偽造愛(ài)盈利證件,騙取用戶(hù)信任,以抖音點(diǎn)贊賺錢(qián)或其他方式賺錢(qián)為名義,過(guò)程中以升級(jí)會(huì)員獲得高傭金為名讓用戶(hù)充值。
愛(ài)盈利公司鄭重聲明:我司沒(méi)有研發(fā)或運(yùn)營(yíng)過(guò)任何名為“愛(ài)盈利”的APP,我司做任務(wù)賺錢(qián)類(lèi)產(chǎn)品從沒(méi)有讓任何普通用戶(hù)充值升級(jí)會(huì)員。我公司產(chǎn)品均在本網(wǎng)站可查詢(xún),請(qǐng)將網(wǎng)站拉至底部,點(diǎn)擊“關(guān)于我們”可查看愛(ài)盈利相關(guān)產(chǎn)品與服務(wù)。
溫馨提示:當(dāng)遇到此類(lèi)問(wèn)題請(qǐng)撥打官方電話或添加官方微信,以免財(cái)產(chǎn)損失。愛(ài)盈利官網(wǎng)地址:www.jza6.com。
  • 推廣與合作
X

如何用R繪制地圖

來(lái)源: 3734
愛(ài)盈利(aiyingli.com)移動(dòng)互聯(lián)網(wǎng)最具影響力的盈利指導(dǎo)網(wǎng)站。定位于服務(wù)移動(dòng)互聯(lián)網(wǎng)創(chuàng)業(yè)者,移動(dòng)盈利指導(dǎo)。我們的目標(biāo)是讓盈利目標(biāo)清晰可見(jiàn)!降低門(mén)檻,讓缺乏經(jīng)驗(yàn)、資金有限的個(gè)人和團(tuán)隊(duì)獲得經(jīng)驗(yàn)和機(jī)會(huì),提高熱情,激發(fā)產(chǎn)品。

如何用R繪制地圖
本文主要包含三種繪制地圖的方法:繪制基礎(chǔ)地圖、基于空間數(shù)據(jù)格式(shapefile)繪制地圖以及如何調(diào)用百度地圖和谷歌地圖的數(shù)據(jù)來(lái)繪制地圖。

基礎(chǔ)地圖

方法

從map()包里獲取地圖數(shù)據(jù),用geom_polygon()(可以用顏色填充)或者geom_path()(不能填充)繪制。

#install.packages(“ggplot2”)

#install.packages(“maps”)

library(ggplot2)

library(maps) # 為了獲取數(shù)據(jù)

##

## # ATTENTION: maps v3.0 has an updated ‘world’ map. #

## # Many country borders and names have changed since 1990. #

## # Type ‘?world’ or ‘news(package=”maps”)’. See README_v3. #

# 美國(guó)地圖數(shù)據(jù)

states_map <- map_data(“state”)

head(states_map)

## long lat group order region subregion

## 1 -87.46201 30.38968 1 1 alabama

## 2 -87.48493 30.37249 1 2 alabama

## 3 -87.52503 30.37249 1 3 alabama

## 4 -87.53076 30.33239 1 4 alabama

## 5 -87.57087 30.32665 1 5 alabama

## 6 -87.58806 30.32665 1 6 alabama

# geom_polygon()

ggplot(states_map, aes(x=long,y=lat,group=group)) +

geom_polygon(fill=”white”,colour=”black”) +

labs(title = “USA Map”)

如何用R繪制地圖
# 中國(guó)地圖

library(mapdata)

map(“china”, col = “red4”, ylim = c(18,54), panel.first = grid())

title(“China Map”)

如何用R繪制地圖
# 世界地圖數(shù)據(jù)

world_map <- map_data(“world”)

head(world_map)

## long lat group order region subregion

## 1 -69.89912 12.45200 1 1 Aruba

## 2 -69.89571 12.42300 1 2 Aruba

## 3 -69.94219 12.43853 1 3 Aruba

## 4 -70.00415 12.50049 1 4 Aruba

## 5 -70.06612 12.54697 1 5 Aruba

## 6 -70.05088 12.59707 1 6 Aruba

#sort(unique(world_map$region))

# 繪制指定區(qū)域的地圖數(shù)據(jù)

# 繪制歐洲足球五大聯(lián)賽所在地

euro <- map_data(“world”, region = c(“UK”,”France”, “Spain”,”Germany”, “Italy”))

ggplot(euro, aes(x=long, y = lat, group=group,fill=region)) +

geom_polygon(colour=”black”) +

scale_fill_brewer(palette = “Set2”) +

scale_y_continuous(limits=c(40,60)) +

scale_x_continuous(limits=c(-25,25)) +

labs(title = ” Euorpe’s Big Five Football Leagues”)

如何用R繪制地圖
繪制等值區(qū)域圖

當(dāng)我們創(chuàng)建一個(gè)地圖后,如果根據(jù)變量值對(duì)不同區(qū)域填充不同的顏色呢?

方法

很簡(jiǎn)單,只要把變量值和地圖數(shù)據(jù)合并在一起,然后把一個(gè)變量映射到fill上就可以了。

head(USArrests) # 1973年的數(shù)據(jù)

## Murder Assault UrbanPop Rape

## Alabama 13.2 236 58 21.2

## Alaska 10.0 263 48 44.5

## Arizona 8.1 294 80 31.0

## Arkansas 8.8 190 50 19.5

## California 9.0 276 91 40.6

## Colorado 7.9 204 78 38.7

crimes <- data.frame(state= tolower(rownames(USArrests)), USArrests)

# 合并數(shù)據(jù)集

crime_map <- merge(states_map,crimes,by.x=”region”,by.y = “state”)

# head(crime_map)

library(plyr) # 加載數(shù)據(jù)清洗軟件包

##

## Attaching package: ‘plyr’

##

## The following object is masked from ‘package:maps’:

##

## ozone

# 按照 group, order排序

crime_map <- arrange(crime_map,group,order)

# head(crime_map)

ggplot(crime_map, aes(x=long,y=lat, group = group, fill = Assault)) +

geom_polygon(colour = “black”) +

coord_map(“polyconic”) +

labs(title = “USA Map”)

如何用R繪制地圖
# 更改配色

ggplot(crimes, aes(map_id = state, fill = Assault)) +

geom_map(map = states_map, colour = “black”) +

scale_fill_gradient(low=”#FFFFFF”, high = “#BB4444”) +

expand_limits(x = states_map$long, y = states_map$lat)

如何用R繪制地圖
對(duì)于犯罪率這個(gè)指標(biāo),從上圖可以看出采用連續(xù)取值的方法無(wú)法很好地反映出信息,這時(shí)采用離散取值反而更容易解釋。

# 離散顏色標(biāo)度

qa <- quantile(crimes$Assault, c(0,0.2,0.4,0.6,0.8,1.0))

qa

## 0% 20% 40% 60% 80% 100%

## 45.0 98.8 135.0 188.8 254.2 337.0

# 新增一個(gè)分位數(shù)類(lèi)別變量

crimes$Assault_q <- cut(crimes$Assault, qa, labels = c(“0-20%”, “20-40%”,”40-60%”,

“60-80%”, “80-100%”),

include.lowest = TRUE)

states <- ddply(states_map, .(region),summarise, lat = mean(lat,na.rm = TRUE),

long = mean(long,na.rm = TRUE))

crimes <- merge(crimes, states, by.x = “state”, by.y = “region”)

# 繪制離散分類(lèi)地圖

p <- ggplot(crimes, aes(map_id = state, fill = Assault_q)) +

geom_map(map = states_map, colour = “black”) +

scale_fill_brewer(palette = “Set2”) +

expand_limits(x = states_map$long, y =states_map$lat) +

coord_map(“polyconic”) +

labs(fill=”Assault Rate/nPercentile”, title = “USA Map”)

p

如何用R繪制地圖
# 加入州名對(duì)應(yīng)的標(biāo)簽

p + geom_text(aes(x=long,y=lat,label=state),size=3,colour=”black”) +

theme_bw() +

xlab(“long”) + ylab(“lat”)

如何用R繪制地圖
# 如果你想去掉網(wǎng)格線和坐標(biāo)框,那么接著往下翻!

# 創(chuàng)建空白背景地圖

theme_clean <- function(base_size=12){

require(grid)

theme_grey(base_size)

theme(

axis.title = element_blank(),

axis.text = element_blank(),

panel.background = element_blank(),

panel.grid = element_blank(),

axis.ticks.length = unit(0, “cm”),

axis.ticks.margin = unit(0, “cm”),

panel.margin = unit(0, “lines”),

plot.margin = unit(c(0,0,0,0), “lines”),

complete = TRUE

)

}

p + theme_clean()

## Loading required package: grid

如何用R繪制地圖

基于空間數(shù)據(jù)格式(shapefile)創(chuàng)建地圖

ESRI公司的Shapefile文件是描述空間數(shù)據(jù)的幾何和屬性特征的矢量數(shù)據(jù)結(jié)構(gòu)的一種格式。 一個(gè)Shapefile文件最少包括三個(gè)文件:主文件(.shp):存儲(chǔ)地理要素的幾何圖形的文件; 索引文件(.shx):存儲(chǔ)圖形要素與屬性信息索引的文件; dBASE表文件(*.dbf):存儲(chǔ)要素信息屬性的dBase表文件。

除此之外還有可選的文件包括:空間參考文件(.prj), 幾何體的空間索引文件(.sbn 和 .sbx), 只讀的Shapefiles的幾何體的空間索引文件(.fbn 和 .fbx), 列表中活動(dòng)字段的屬性索引(.ain 和 .aih), 可讀寫(xiě)Shapefile文件的地理編碼索引(.ixs), 可讀寫(xiě)Shapefile文件的地理編碼索引(.mxs), dbf文件的屬性索引(.atx), 以XML格式保存元數(shù)據(jù)(.shp.xml), 用于描述.dbf文件的代碼頁(yè),指明其使用的字符編碼的描述文件(*.cpg)。

需要注意的是,主文件是一個(gè)直接存取,變長(zhǎng)記錄的文件,其中每個(gè)記錄描述一個(gè)實(shí)體的數(shù)據(jù),我們稱(chēng)之為稱(chēng)為shape。

下面這個(gè)網(wǎng)站中可以下載全球各個(gè)國(guó)家完整的shapefile格式數(shù)據(jù): shapefile數(shù)據(jù)下載網(wǎng)站

備注:慎用中國(guó)地圖數(shù)據(jù)!

方法

利用maptools()包中的readShapePoly()載入空間數(shù)據(jù)文件,用fortify()把數(shù)據(jù)轉(zhuǎn)化成數(shù)據(jù)框的格式,然后畫(huà)圖。

library(maptools)

## Loading required package: sp

## Checking rgeos availability: TRUE

setwd(“~/Desktop/dataset/map”)

# 載入空間數(shù)據(jù)并轉(zhuǎn)化成數(shù)據(jù)框

china_shp <- readShapePoly(“china/bou2_4p.shp”)

# 返回一個(gè) SpatialPolygonsDataFrame 對(duì)象

# str(china_shp)

china_map <- fortify(china_shp)

## Regions defined for each Polygons

# 繪制中國(guó)地圖

p <- ggplot(china_map, aes(x = long, y = lat, group = group)) +

geom_path() +

labs(title = “China Map”)

# 繪制空白背景的地圖

p + theme_clean()

如何用R繪制地圖
這里我們只利用了shapefile中最基本的邊界信息,還沒(méi)有對(duì)地理信息數(shù)據(jù)進(jìn)行更進(jìn)一步的分析。我們還可以將不同格式的地理數(shù)據(jù)整合起來(lái),例如如何在上面的地圖上繪制出我國(guó)的鐵路、水系分布等內(nèi)容。

調(diào)用百度地圖和谷歌地圖的數(shù)據(jù)

接下來(lái),我將介紹如何從百度地圖和谷歌地圖中獲取心儀的地圖數(shù)據(jù)信息。

百度地圖

library(devtools)

#install_github(“badbye/baidumap”)

library(baidumap)

# 隨便輸入幾個(gè)經(jīng)緯度坐標(biāo)

lon = matrix(c(117.93780, 24.55730, 117.93291, 24.57745, 117.23530, 24.64210,

117.05890, 24.74860), byrow=T, ncol=2)

# 將經(jīng)緯度坐標(biāo)轉(zhuǎn)換成真實(shí)地理信息

location = getLocation(lon, formatted = T)

location

## lon=117.9378;lat=24.5573 lon=117.93291;lat=24.57745

## “福建省廈門(mén)市海滄區(qū)坂南路” “福建省廈門(mén)市海滄區(qū)大溪路”

## lon=117.2353;lat=24.6421 lon=117.0589;lat=24.7486

## “福建省漳州市南靖縣” “福建省漳州市南靖縣X607”

# 獲取廈門(mén)大學(xué)經(jīng)緯度坐標(biāo),返回json格式文件

getCoordinate(‘廈門(mén)大學(xué)’) # json

## 廈門(mén)大學(xué)

## “{/”status/”:0,/”result/”:{/”location/”:{/”lng/”:118.10229694322,/”lat/”:24.442898974406},/”precise/”:0,/”confidence/”:30,/”level/”:/”商圈/”}}”

ad <- getCoordinate(‘廈門(mén)大學(xué)’, formatted = TRUE)

names(ad) <- NULL

# 繪制地圖

# 自己修改了一些參數(shù),并將修改后的package掛在github上,所以我選擇從github上安裝ggmap包。

# install_github(“fibears/ggmap”)

library(ggmap)

p <- getBaiduMap(“廈門(mén)市思明區(qū)”,zoom = 12)

## Map from URL : http://api.map.baidu.com/staticimage?width=400&height=400¢er=118.13453488213,24.468728076403&zoom=12&scale=2

ggmap(p) +

geom_point(aes(x=ad[1], y =ad[2]))

如何用R繪制地圖
當(dāng)當(dāng)當(dāng),奇跡發(fā)生了——廈門(mén)大學(xué)位于海中央!這是因?yàn)楣雀璧貓D和百度地圖經(jīng)緯度坐標(biāo)存在一定的偏差, 而getBaiduMap()軟件包的作者利用了ggmap()包中坐標(biāo)轉(zhuǎn)換的思想,這導(dǎo)致最終繪制出來(lái) 的圖形不準(zhǔn)確。因此,我們還是考慮轉(zhuǎn)入谷歌陣營(yíng)。

谷歌地圖

首先介紹一個(gè)概念:火星坐標(biāo)系統(tǒng)

火星坐標(biāo)系統(tǒng)是一種國(guó)家保密插件,也叫做加密插件或者加偏或者SM模組,其實(shí)就是對(duì)真實(shí)坐標(biāo)系統(tǒng)進(jìn)行人為的加偏處理,按照特殊的算法,將真實(shí)的坐標(biāo)加密成虛假的坐標(biāo),而這個(gè)加偏并不是線性的加偏,所以各地的偏移情況都會(huì)有所不同。而加密后的坐標(biāo)也常被人稱(chēng)為火星坐標(biāo)系統(tǒng)。

所有的電子地圖、導(dǎo)航設(shè)備,都需要加入國(guó)家保密插件。第一步,地圖公司測(cè)繪地圖,測(cè)繪完成后,送到國(guó)家測(cè)繪局,將真實(shí)坐標(biāo)的電子地圖,加密成“火星坐標(biāo)”,這樣的地圖才是可以出版和發(fā)布的,然后才可以讓GPS公司處理。第二步,所有的GPS公司,只要需要汽車(chē)導(dǎo)航的,需要用到導(dǎo)航電子地圖的,都需要在軟件中加入國(guó)家保密算法,將COM口讀出來(lái)的真實(shí)的坐標(biāo)信號(hào),加密轉(zhuǎn)換成國(guó)家要求的保密的坐標(biāo)。這樣,GPS導(dǎo)航儀和導(dǎo)航電子地圖就可以完全匹配,GPS也就可以正常工作了。

由于谷歌地圖被GFW屏蔽了,所以想調(diào)用其API需要翻墻。

主要有以下幾個(gè)步驟:

安裝SSLedge

在RStudio中更改proxy

首先,我們先簡(jiǎn)單認(rèn)識(shí)下http和https:

http是普通超文本協(xié)議,其信息室明文傳送,而https就是安全超文本傳輸協(xié)議,需要證書(shū)和提供安全連接,https是嵌套了SSL加密的http連接,其內(nèi)容會(huì)由SSL先加密,然后再傳送。

為了更方便地使用網(wǎng)絡(luò),我將只使用https代理,對(duì)于Http類(lèi)型的網(wǎng)站使用直接連接的方式。

# 查看信息

Sys.getenv()

# 兩種方式設(shè)置proxy

# 利用Sys.setenv()

Sys.setenv(https_proxy=”https://user:password@ip:port”)

# 修改.Renviron 文檔

接下來(lái)我們來(lái)看看如何調(diào)用谷歌地圖的API來(lái)繪圖。

# 可以直接在cran中下載package

# install_github(“fibears/ggmap”) # 自己修改了部分鏈接代碼,所以我選擇從github下載

# library(ggmap)

setwd(“~/Desktop/dataset/others”)

# 獲取坐標(biāo)及地圖數(shù)據(jù)

ad1 <- as.numeric(geocode(“福建省廈門(mén)市思明南路422”,source = “google”))

## Information from URL : https://maps.googleapis.com/maps/api/geocode/json?address=%E7%A6%8F%E5%BB%BA%E7%9C%81%E5%8E%A6%E9%97%A8%E5%B8%82%E6%80%9D%E6%98%8E%E5%8D%97%E8%B7%AF422&sensor=false

xmu <- get_map(“廈門(mén)市思明區(qū)”,zoom = 13, maptype = “roadmap”)

## Map from URL : https://maps.googleapis.com/maps/api/staticmap?center=%E5%8E%A6%E9%97%A8%E5%B8%82%E6%80%9D%E6%98%8E%E5%8C%BA&zoom=13&size=640×640&scale=2&maptype=roadmap&language=en-EN&sensor=false

## Information from URL : https://maps.googleapis.com/maps/api/geocode/json?address=%E5%8E%A6%E9%97%A8%E5%B8%82%E6%80%9D%E6%98%8E%E5%8C%BA&sensor=false

ggmap(xmu, extent = “normal”) +

geom_point(aes(x=ad1[1], y =ad1[2]))

如何用R繪制地圖
需要注意的是,利用geocode函數(shù)檢索經(jīng)緯度數(shù)據(jù)時(shí),最好選擇使用道路數(shù)據(jù),這樣可以提高檢索的準(zhǔn)確率。

最后引用肖凱大神博客中的一個(gè)案例:本例是從地震信息網(wǎng)獲取最近一周的地震數(shù)據(jù),得到其經(jīng)緯度,然后以散點(diǎn)形式繪制在google地圖上,同時(shí)也顯示地震發(fā)生的密度估計(jì)。

# 加載擴(kuò)展包

# install.packages(“animation”)

# install.packages(“XML”)

library(ggmap)

library(animation)

library(XML)

# 從網(wǎng)頁(yè)上抓取數(shù)據(jù),并進(jìn)行清理

webpage <-‘http://data.earthquake.cn/datashare/globeEarthquake_csn.html’

tables <- readHTMLTable(webpage,stringsAsFactors = FALSE)

raw <- tables[[6]]

data <- raw[-1,c(‘V1′,’V3′,’V4’)]

names(data) <- c(‘date’,’lan’,’lon’)

data$lan <- as.numeric(data$lan)

data$lon <- as.numeric(data$lon)

data$date <- as.Date(data$date, “%Y-%m-%d”)

# 用ggmap包從google讀取地圖數(shù)據(jù),并將之前的數(shù)據(jù)標(biāo)注在地圖上。

ggmap(get_googlemap(center = ‘china’, zoom=4,maptype=’terrain’),extent=’device’) +

geom_point(data=data,aes(x=lon,y=lan),colour = ‘red’,alpha=0.7) +

stat_density2d(aes(x=lon,y=lan,fill=..level..,alpha=..level..),

size=2,bins=4,data=data,geom=’polygon’)+

theme(legend.position = “none”)

## Map from URL : https://maps.googleapis.com/maps/api/staticmap?center=china&zoom=4&size=640×640&scale=2&maptype=terrain&sensor=false

## Information from URL : https://maps.googleapis.com/maps/api/geocode/json?address=china&sensor=false

## Warning: Removed 47 rows containing non-finite values (stat_density2d).

## Warning: Removed 47 rows containing missing values (geom_point).

End.

?

轉(zhuǎn)載請(qǐng)注明來(lái)自36大數(shù)據(jù)(36dsj.com):36大數(shù)據(jù) » 如何用R繪制地圖

愛(ài)盈利-運(yùn)營(yíng)小咖秀 始終堅(jiān)持研究分享移動(dòng)互聯(lián)網(wǎng)App數(shù)據(jù)運(yùn)營(yíng)推廣經(jīng)驗(yàn)、策略、全案、渠道等純干貨知識(shí)內(nèi)容;是廣大App運(yùn)營(yíng)從業(yè)者的知識(shí)啟蒙、成長(zhǎng)指導(dǎo)、進(jìn)階學(xué)習(xí)的集聚平臺(tái);

評(píng)論

相關(guān)文章推薦

SELECT dw_posts.ID,dw_posts.post_title,dw_posts.post_content FROM dw_posts INNER JOIN dw_term_relationships ON (dw_posts.ID = dw_term_relationships.object_id) WHERE 1=1 AND(dw_term_relationships.term_taxonomy_id = 3413 ) AND dw_posts.post_type = 'post' AND (dw_posts.post_status = 'publish') GROUP BY dw_posts.ID ORDER BY RAND() LIMIT 0, 6

京ICP備15063977號(hào)-2 ? 2012-2018 aiyingli.com. All Rights Reserved. 京公網(wǎng)安備 11010102003938號(hào)