Как я могу изменить легенду для ggbiplot?

На самом деле я пытаюсь построить 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, как также установить это к чему-то еще?

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"))
Другие вопросы по тегам