我想將索引向量中的值傳遞給ggplot中的expression()
函數(shù)。最容易表達(dá)我的意思。這是玩具數(shù)據(jù)。三組,每組11個(gè)值。
# Toy data
data.frame(out = c(seq(0,1,.1), seq(0,0.5,.05), seq(0,0.1,.01)),
time = seq(0,50,5),
group = factor(rep(letters[1:3],each=11))) -> d
現(xiàn)在,創(chuàng)建每組中的數(shù)字計(jì)數(shù)向量,以傳遞到圖例標(biāo)簽中
groupCounts <- table(d$group)
groupCounts
# output
# a b c
# 11 11 11
現(xiàn)在使用scale_colour_manual()
手動(dòng)更改圖例顏色和標(biāo)簽。我想將每個(gè)組的數(shù)字傳遞給一個(gè)expression()
函數(shù),該函數(shù)將在圖的圖例中呈現(xiàn)相應(yīng)的標(biāo)簽,如下所示
ggplot(data = d,
mapping = aes(x = time,
y = out,
colour = group)) +
geom_line() +
scale_colour_manual(labels = c(expression(paste("All (", italic("n"), "=", groupCounts[1], ")")),
expression(paste("0 days (", italic("n"), "=", groupCounts[2], ")")),
expression(paste("1-9 days (", italic("n"), "=", groupCounts[3], ")"))),
values = c("#440154",
"#31688E",
"#35B779"))
但是索引向量中的值不會(huì)出現(xiàn)在圖中
當(dāng)我手動(dòng)輸入數(shù)字時(shí),它就起作用了
ggplot(data = d,
mapping = aes(x = time,
y = out,
colour = group)) +
geom_line() +
scale_colour_manual(labels = c(expression(paste("All (", italic("n"), "=", 11, ")")),
expression(paste("0 days (", italic("n"), "=", 11, ")")),
expression(paste("1-9 days (", italic("n"), "=", 11, ")"))),
values = c("#440154",
"#31688E",
"#35B779"))
那么,如何使索引向量值在圖例標(biāo)簽中顯示為數(shù)字呢?
非常感謝您的幫助
您可以使用
bquote()
代替expression()
: