簡體   English   中英

如何用我自己的數據 plot 和歐洲 map?

[英]How to plot an Europe map with my own data?

我想做一個歐洲 map,所以我正在嘗試使用此代碼,但我真的不知道它是如何工作的。

#that's my data

europe<-structure(list(Code = c("BE", "BG", "CZ", "DK", "DE", "EE", "IE", 
"EL", "ES", "FR", "HR", "IT", "CY", "LV", "LT", "LU", "HU", "MT", 
"NL", "AT", "PL", "PT", "RO", "SI", "SK", "FI", "SE", "IS", "NO", 
"CH", "UK"), Country = c("Belgium", "Bulgaria", "Czechia", "Denmark", 
"Germany (until 1990 former territory of the FRG)", "Estonia", 
"Ireland", "Greece", "Spain", "France", "Croatia", "Italy", "Cyprus", 
"Latvia", "Lithuania", "Luxembourg", "Hungary", "Malta", "Netherlands", 
"Austria", "Poland", "Portugal", "Romania", "Slovenia", "Slovakia", 
"Finland", "Sweden", "Iceland", "Norway", "Switzerland", "United Kingdom"
), Production = c(133.2, 48.2, 77.4, 138.2, 121.3, 71.2, 178.9, 
58.5, 95, 126.1, 64.5, 100.1, 75, 59.8, 67.7, 175.1, 66.8, 75.8, 
122.3, 115.7, 65, 66.1, 66.1, 83.9, 70.1, 109.5, 112.4, 118.2, 
152.4, 129.3, 96.8)), row.names = c(NA, -31L), class = c("tbl_df", 
"tbl", "data.frame"))

現在我正在使用我發現的這段代碼,我知道我的問題是當我綁定數據時,如果有人能告訴我我該如何解決它或者你是否知道其他方法...... :)

# Download the shape file from the web and unzip it:
download.file("http://thematicmapping.org/downloads/TM_WORLD_BORDERS_SIMPL-0.3.zip" , destfile="world_shape_file.zip")
system("unzip world_shape_file.zip")

# Load it as a geospatial object in R
library(rgdal)
my_spdf <- readOGR( dsn= "./world_shape_file/" , layer="TM_WORLD_BORDERS_SIMPL-0.3", verbose=FALSE) 
europa <- my_spdf[my_spdf@data$REGION==150 , ]

europa@data <- merge(europa@data, europe)



# Use the cartography library to do the choropleth map

library(maptools)

par(mar=c(0,0,0,0))

spplot(europa, zcol = "Production",xlim=c(-30,120) , ylim=c(30,90), lwd=0.5)

``

我想你認為歐羅巴 object 仍然有一個名為@data的項目,但如果你看一下,情況並非如此:

> my_spdf <- readOGR( dsn= "~/Downloads/" , layer="TM_WORLD_BORDERS_SIMPL-0.3", verbose=FALSE) 
> europa <- my_spdf[my_spdf@data$REGION==150 , ]
> names(europa)
 [1] "FIPS"      "ISO2"      "ISO3"      "UN"        "NAME"      "AREA"      "POP2005"  
 [8] "REGION"    "SUBREGION" "LON"       "LAT"   

此外,您要合並的列的名稱在europaeurope中不同,因此您需要告訴 merge 並保留所有區域由 all.x=TRUE 完成

> europa <- merge(europa, europe, by.x="FIPS",by.y="Code", all.x=TRUE)
> names(europa)
 [1] "FIPS"       "ISO2"       "ISO3"       "UN"         "NAME"       "AREA"       "POP2005"   
 [8] "REGION"     "SUBREGION"  "LON"        "LAT"        "Country"    "Production"

現在你可以 plot:

 png()
 spplot(europa, zcol = "Production",xlim=c(-30,120) , ylim=c(30,90), lwd=0.5)
 dev.off()

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM