更改 ggpairs 上面板中的标签

Change label in ggpairs upper panel

您知道如何更改 ggpairsGgally 包)上面板的标签吗?我找到了如何更改大小、字体而不是标签。在这里我想缩短标签("set" pour setosa 等...)。我试着把它放在 labels=c("set", "ver", "vir")upper=list(params=list(size=8),labels=c("set", "ver", "vir")) 中,但它不起作用。

ggpairs(iris, columns=c(2:4), title="variable analysis", colour="Species",
        lower=list(params=list(size=2)), upper=list(params=list(size=8))) 

有点难看,但你可以这样做(重命名图中的级别):

library(GGally)
gplt <- ggpairs(iris, columns=c(2:4), 
        title="variable analysis", 
        colour="Species", 
        lower=list(params=list(size=2)), 
        upper=list(params=list(size=6)))

levels(gplt$data$Species)[levels(gplt$data$Species)=="versicolor"] <- "ver"
levels(gplt$data$Species)[levels(gplt$data$Species)=="virginica"] <- "vir"
levels(gplt$data$Species)[levels(gplt$data$Species)=="setosa"] <- "set"

print(gplt)

概念上与@Mike 的解决方案相同,但在一行中。

levels(iris$Species) <- c("set", "ver", "vir")
ggplairs(<...>)

如果您有很多关卡并且不想手动缩写它们,这里还有另一个更灵活的建议:trim 关卡到所需的长度。

levels(iris$Species) <- strtrim(levels(iris$Species), 3)
ggplairs(<...>)

顺便说一下,width 参数也被矢量化了:

rm(iris)
strtrim(levels(iris$Species), c(1, 3, 5))
#[1] "s"     "ver"   "virgi"