【问题标题】:how can I change the legend for ggbiplot?如何更改 ggbiplot 的图例?
【发布时间】:2015-05-08 12:49:40
【问题描述】:

实际上,我正在尝试通过此包绘制 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 ,如何也将其设置为其他名称?

【问题讨论】:

  • 什么是log.ir?没有它,您的代码将无法重现。
  • 我不确定您所说的“更改变量的名称..显示其他内容”是什么意思。你能更具体一点,或者发布一张图片来展示你得到的东西并解释你想要的东西吗?对于第二个问题,您可以更改图例标题,方法是将以下内容添加到您对 labs 的调用中:colour="New Label"
  • @eipi10 我修改了问题,现在可以重现了

标签: r pca ggbiplot


【解决方案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"))

【讨论】:

  • 能否请您说一下如何使它变粗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
相关资源
最近更新 更多