我有一个shapefile,该文件已通过R中的空间回归模型运行。
我从回归模型中提取了残差并将其作为新变量添加到原始shapefile中。我希望绘制这些残差,但遇到一些问题。
这是我的代码:
plot(shapefile,col=gray(shapefile@data$residuals))
我收到此错误:
invalid gray level, must be in [0,1].
我是否正确假设这与残差的值有关?它们的范围是-40至+20。有没有办法将此比例从0-1更改为更大的比例?还是更简单的方法来绘制这些图形?
我也尝试了spplot:
spplot(shape@data$residuals)
并收到错误:
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘spplot’ for signature
‘"numeric"’
答案 0 :(得分:0)
col = grey()
根据放置在其中的值生成灰度的十六进制代码。是的,这些数字应在0:1之间。如果要为每个唯一残差获取单独的灰色十六进制代码,则可以使用length
和unique
函数来实现。下面是一个示例,其中对于每个组,我们的数据框具有不同的灰度:
Group <- c(1,1,1,1,2,2,2,2,3,3,3,3)
Year <- c(2006,2007,2008,2009,2006,2007,2008,2009,2006,2007,2008,2009)
Qtr.1 <- as.numeric(c(15,13,22,13,12,16,13,23,11,15,17,14))
DF <- data.frame(Group,Year,Qtr.1)
#to get HEX for each unique input
c <- grey(1:length(unique(DF$Group))/length(unique(DF$Group)))
c
> [1] "#555555" "#AAAAAA" "#FFFFFF"
#Without Grey
plot(DF$Year,DF$Qtr.1)
#With Grey
plot(DF$Year,DF$Qtr.1, col = c[Group])
请注意,我没有选择生成的灰色十六进制代码,并且第3组的十六进制代码是如此微弱,很难被发现。另外,我们需要在Group
参数的末尾在col
上建立索引。正如其他人已经提到的那样,解决此问题的方法可能比灰度和基本图函数更好。对于自定义可视化(例如ggplot或其他人指出的内容),寻找其他软件包可能是更好的选择。
选中此不错的summary,以获取有关col
的更多信息