1

实际上我正在尝试通过这个包绘制 PCA 但是当我绘制加载时,我无法按照我的意愿更改图例(例如,如果我想将图例设置为 (+)M 它会显示其他内容。我所做的如下:

library(ggbiplot)
require(ggplot2)

data(iris)
data <- data.frame(iris[,1:4])    
ir.pca <- prcomp(data, center = TRUE, scale. = TRUE)
theta <- seq(0,2*pi,length.out = 100)
circle <- data.frame(x = cos(theta), y = sin(theta))
p <- ggplot(circle,aes(x,y)) + geom_path()

loadings <- data.frame(ir.pca$rotation, 
                       .names = row.names(ir.pca$rotation))
p + geom_text(data=loadings, 
              mapping=aes(x = PC1, y = PC2, label = .names, colour = .names)) +
  coord_fixed(ratio=1) +
  labs(x = "PC1", y = "PC2")

现在的问题是,如果您将变量的名称更改为例如 (+)C 、 (-)C、 (*)C 和 (%)C 然后绘图,它会在图例中显示其他内容

另一方面,图例的标题是 .name ,如何也将其设置为其他内容?

4

1 回答 1

1

这是你的意思,还是我误解了:

loadings <- data.frame(ir.pca$rotation, 
                       .names = row.names(ir.pca$rotation),
                       names2 = c("(+)C" , "(-)C", "(*)C", "(%)C"))

p + geom_text(data=loadings, 
              mapping=aes(x = PC1, y = PC2, label = names2, colour = .names)) +
  coord_fixed(ratio=1) +
  labs(x = "PC1", y = "PC2", colour="Legend Title")

在此处输入图像描述

更新:以下是如何geom_text在图例中使文本变为粗体:

p + geom_text(data=loadings, 
              mapping=aes(x = PC1, y = PC2, label = names2, colour = .names),
              fontface="bold") +
  coord_fixed(ratio=1) +
  labs(x = "PC1", y = "PC2", colour="Legend Title") +
  theme(legend.text=element_text(face="bold"))
于 2015-05-11T15:25:54.053 回答