最近我ggparcoord()
在R中使用时遇到了一个问题。我想为平行坐标图中的线条添加一些标签,但我似乎无法做到。
这是一个MWE:
A <- rnorm(200, 60, 200)
B <- rnorm(200, 40, 126)
C <- rnorm(200, 200, 800)
D <- c( rep("C1", 50), rep("C2", 50), rep("C3", 50), rep("C4", 50) )
df <- data.frame(A, B, C, D)
ggparcoord(df, columns = c(1, 2, 3), groupColumn = 4) +
geom_line(size = 0.25) + geom_text(label = "x", hjust = -0.5) +
ggtitle("Var relationships across clusters") +
xlab("My dimensions") + ylab("Scaled values") +
scale_colour_manual(values = c("C1" = "#2166ac",
"C2" = "#67a9cf",
"C3" = "#ef8a62",
"C4" = "#b2182b"))
所以这种工作,并在 3 个轴上添加一个“x”。当我想提供适当长度的字符向量而不是“x”时,就会出现问题。因此,例如:
my_labs <- sample(LETTERS, nrow(df), replace = T)
ggparcoord(df, columns = c(1, 2, 3), groupColumn = 4) +
geom_line(size = 0.25) + geom_text(label = rep(my_labs, 3), hjust = -0.5 ) +
ggtitle("Var relationships across clusters") +
xlab("My dimensions") + ylab("Scaled values") +
scale_colour_manual(values = c("C1" = "#2166ac",
"C2" = "#67a9cf",
"C3" = "#ef8a62",
"C4" = "#b2182b"))
在这里,我将my_labs
向量乘以 3,以匹配ggparcoord()
3 个轴所需的长度(理论上)。但令人惊讶的是,这仍然失败:Error: Aesthetics must be either length 1 or the same as the data (4): label, hjust
. 我真的不明白这甚至意味着什么,data (4)
在里面。帮助表示赞赏!
PS。在我的真实数据中,我计划实际上只标记相关的行子集;其他的将""
在字符向量中有一个。所以我不太担心情节过于拥挤。谢谢!