我已经对空间数据集运行了因子分析,我想在Map上绘制结果,以便每个单独点(位置)的颜色是提取的三个因子在该位置的得分在RGB/HSV空间中的组合。
我使用基数R来绘制位置,这些位置位于使用spdep包创建的SpatialPointsDataFrame中:
图书馆
library(sp)
library(classInt)
示例数据集
fas <- structure(list(MR1 = c(-0.604222013102789, -0.589631093835467,
-0.612647301042234, 2.23360319770647, -0.866779007222414), MR2 = c(-0.492209397489792,
-0.216810726717787, -0.294487678489753, -0.60466348557844, 0.34752411748663
), MR3 = c(-0.510065798219453, -0.61303212834454, 0.194263734935779,
0.347461766159926, -0.756375966467285), x = c(1457543.717, 1491550.224,
1423185.998, 1508232.145, 1521316.942), y = c(4947666.766, 5001394.895,
4948766.5, 4950547.862, 5003955.997)), row.names = c("Acqui Terme",
"Alagna", "Alba", "Albera Ligure", "Albuzzano"), class = "data.frame")
创建空间对象
fas <- SpatialPointsDataFrame(fas[,4:5], fas,
proj4string = CRS("+init=EPSG:3003"))
绘图功能
map <- function(f) {
pal <- colorRampPalette(c("steelblue","white","tomato2"), bias = 1)
collist <- pal(10)
class <- classIntervals(f, 8, style = "jenks")
color <- findColours(class, collist)
plot(fas, pch=21,cex=.8, col="black",bg=color)
}
#example usage
#map(fas$MR1)
上面的代码可以很好地为每个因子生成一个单独的图。我想要的是一种方法来生成三个因子一起的复合图。
提前感谢您的建议。
1条答案
按热度按时间qnzebej01#
我通过this post找到了一个解决方案!上面显示的数据是这样的: