Аннотации, которые работают в ggplot2 3.1.1, не работают в 3.2.1. Как исправить? - PullRequest
1 голос
/ 07 января 2020

Мой код, который создает пользовательские аннотации в граненых гистограммах в ggplot2 3.1.1, не работает на другом компьютере, на котором запущен ggplot2 3.2.1, выдает эту ошибку: Ошибка: эстетика должна иметь длину 1 или совпадать с данными ( 9): label

Как сделать так, чтобы мои аннотации отображались в фасетах ggplot2 3.2.1?

Ниже приведен минимальный пример использования mtcars.

Спасибо !!

library(ggplot2, warn.conflicts = FALSE)
library(dplyr, warn.conflicts = FALSE)

lb <- mtcars %>%
      group_by(cyl) %>%
      summarize(n=n(), avg_gear=round(mean(gear),1))
lb$label <- paste0("n=",lb$n, "     avg_gear=",lb$avg_gear)
print(lb)

ggplot(data=mtcars, aes(x=gear)) +
geom_histogram(binwidth=1) +
facet_grid(. ~ cyl) +
annotate("text", x=4, y=13, label=lb$label) +  
ggtitle("histograms of gear, faceted by cyl") 

1 Ответ

3 голосов
/ 07 января 2020

Вы можете использовать другой слой:

ggplot(data=mtcars, aes(x=gear)) +
  geom_histogram(binwidth=1) +
  facet_grid(. ~ cyl) +
  geom_text(data = lb, aes(x = 4, y = 13, label = label)) +    # in place of annotate
  ggtitle("histograms of gear, faceted by cyl") 

enter image description here

...