在annotate()中插入自定义文本 - R无法正常工作

时间:2015-04-17 20:35:49

标签: r text ggplot2 label annotate

已经有人问过,但我找不到确切的答案。我想知道以下是否可行。

我在ggplot2库中有一堆散点图数据,每个都有不同的均值和标准差,以及观察次数。我想在每个不同的情节之上打印这些信息。因此,我正在计算并想要打印带注释的那些。我正在做的事情如下:

m_axl5 <- as.character(round(mean(newdata$axl5), 5))
sd_axl5 <- as.character(round(sd(newdata$axl5), 5))
txt_m <- paste ("mean:", m_axl5)
txt_sd <- paste ("stdev:", m_axl5)
txt <-paste (txt_m, txt_sd, sep = '\n')
axl5 <- ggplot (newdata, aes(y=axl5, x= row.names(newdata))) + geom_point(position = position_jitter(w=0.1, h=0), colour= "red")+
    ggtitle("Axle 5 Weight - Match Error Difference") + xlab("") + ylab("Axle 5 Weight Match Error")
axl5 + theme(axis.ticks = element_blank(), axis.text.x = element_blank()) +annotate("text", x = 1, y = 10, label = txt)

每当我这样做时,它会给我以下错误:

Error: Incompatible lengths for set aesthetics: label

由于我的研究,我无法找到一种方法来定制标签或在ggplot上注释文本。如果有人可以帮助我,或者至少在我提前做好指导的时候,我会非常高兴。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以做一些像这样的事情

,而不是使用annotate()
plot.title = 'Axle 5 Weight - Match Error Difference'
plot.subtitle = paste(txt_m, txt_sd, sep = '-')

ggtitle(bquote(atop(.(plot.title), atop(.(plot.subtitle), ""))))

参考:Add dynamic subtitle using ggplot