2014-04-05 3 views
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]이지만이 정보를 그래프에 입력하는 방법을 알지 못합니다.

+1

'labs (x = as.character (res.pca $ eig [1,2]), y = as.character (res.pca $ eig [2,2])')를 사용해 보셨습니까? – hrbrmstr

답변

1
plot<-plot+xlab("axis name") 

어쩌면?

+0

예, 잘 작동합니다. 고맙습니다! :디 – user3502213