Вставка пользовательского текста в аннотации () - R не работает
Это уже спрашивали, но я не мог найти точный ответ для этого. Мне интересно, выполнимо ли следующее.
У меня есть куча данных точечной диаграммы в библиотеке 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 ответ
Вместо использования 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), ""))))