这是我的第一个问题,请耐心等待!提前感谢您抽出宝贵时间。
我有以下问题,我无法找到答案:我正在通过出差到工作区(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
对此的任何帮助都将非常感激。