0
여기 ggplot2에서 PCA biplot을 작성하는 코드를 발견했습니다. 나는 약간의 수정을했지만, 여전히 개선이 필요하다.ggplot2에서 축 이름 변경
코드는 같다 :
PCbiplot2 <- function(res.pca, x="Dim.1", y="Dim.2") {
if(!require(ggplot2)) install.packages("ggplot2")
# res.pca being a PCA object
data <- data.frame(obsnames=row.names(res.pca$ind$coord), res.pca$ind$coord)
plot <- ggplot(data, aes_string(x=x, y=y)) + geom_text(size=3, aes(label=obsnames))
plot <- plot + geom_hline(aes(0), size=.2) + geom_vline(aes(0), size=.2)
datapc <- data.frame(varnames=rownames(res.pca$var$coord), res.pca$var$coord)
mult <- min(
(max(data[,y]) - min(data[,y])/(max(datapc[,y])-min(datapc[,y]))),
(max(data[,x]) - min(data[,x])/(max(datapc[,x])-min(datapc[,x])))
)
datapc <- transform(datapc,
v1 = .7 * mult * (get(x)),
v2 = .7 * mult * (get(y))
)
plot <- plot + coord_equal() + geom_text(data=datapc, aes(x=v1, y=v2, label=varnames), size = 3, vjust=1.5, color="red")
plot <- plot + geom_segment(data=datapc, aes(x=0, y=0, xend=v1, yend=v2), arrow=arrow(length=unit(0.2,"cm")), alpha=0.75, color="red")
plot <- plot + theme(panel.background = element_rect(fill='white', colour='black'))
plot
}
이 코드를 사용하여 그래프의 명칭이 "Dim.1"및 "Dim.2"를 축있다. 치수 변동의 비율을 표시해야합니다. 이 정보는 Dim.1의 경우 res.pca $ eig [1,2]이고 Dim.2의 경우 res.pca $ eig [2,2]이지만이 정보를 그래프에 입력하는 방법을 알지 못합니다.
'labs (x = as.character (res.pca $ eig [1,2]), y = as.character (res.pca $ eig [2,2])')를 사용해 보셨습니까? – hrbrmstr