R中的classInterval函数错误地分配了类

时间:2018-03-08 13:24:32

标签: r mapping gis

这是我的第一个问题,请耐心等待!提前感谢您抽出宝贵时间。

我有以下问题,我无法找到答案:我正在通过出差到工作区(TTWA)绘制英格兰的收入数据。我正在使用classInt包通过分位数将值分配到五个类中,然后使用RColorBrewer包中的颜色映射这些数据。但是,在将地图与原始数据进行比较时,阴影与正确的类不对应。例如,伦敦的值为27168.83,但阴影的颜色对应于18629-20166。

链接背后的图像说明了问题。 A snippet of the data frame, showing the earnings value for London. The map resultant from my code, with London highlighted

代码中必定存在一些我无法识别的错误。请参阅下面的代码。我究竟做错了什么?

# Clear workspace
rm(list = ls())
setwd("C:/Users/Carolin/OneDrive/PhD/Internal and international migration - paper 1/Data analysis/")

# Load packages
  library(sp)
  library(maptools)
  library(rgdal)
  library("classInt")
  library("RColorBrewer")
  library(rgeos)
  library(plyr)

# Read in shapefiles 
  TTWA <- readShapeSpatial("01_raw/Travel_to_Work_Areas_December_2011_Full_Clipped_Boundaries_in_United_Kingdom/Travel_to_Work_Areas_December_2011_Full_Clipped_Boundaries_in_United_Kingdom")
  TTWA <- TTWA[substr(TTWA$ttwa11cd, 1, 1) == "E", ]

# Load data from CSV
  data <- read.table(paste("02_intermediate/ttwa_workpl_tot_earnings_2016.csv", sep = ""), sep="\t", header = TRUE)

# Join attribute data to TTWA
  mapdata <- merge(data, TTWA@data, by.x="ttwa", by.y="ttwa11cd", all.y = TRUE)

# Set colours and breaks
  breaks <- classIntervals(mapdata$workpl_tot_earnings, n = 5, style = "quantile", dataPrecision = NULL)
  my_colours <- brewer.pal(5, "YlOrRd")

# Plot map
  plot(TTWA, col = my_colours[findInterval(mapdata$workpl_tot_earnings, breaks$brks, all.inside = FALSE)], axes = FALSE, border = FALSE)
  legend("topleft", legend = leglabs(round(breaks$brks, digits = 0)), fill = my_colours, bty = "o")

可在此处找到shapefile:http://geoportal.statistics.gov.uk/datasets/travel-to-work-areas-december-2011-full-clipped-boundaries-in-united-kingdom 这是ttwa_workpl_tot_earnings_2016.csv数据集的结构:

ttwa    workpl_tot_earnings  
E30000004   19066.27129483733  
E30000018   21016.34693877551  
E30000029   22202  
E30000039   18691  
E30000046   17585.72016081708  
E30000051   17873  
E30000054   18657.91722661888  
E30000061   18926.50491083942  
E30000064   17539.94306924291  
E30000070   20103  
E30000076   21062  
E30000093   20194.32707774799  

对此的任何帮助都将非常感激。

0 个答案:

没有答案