проблемы с метками ggplot, не меняющими значение при использовании facet_wrap - PullRequest
0 голосов
/ 17 июня 2020

Я изо всех сил пытаюсь настроить этот код в RStudio так, чтобы метка geom_text настраивалась на среднее значение для каждой страны, показанной на поперечной панели. Мне кажется, что это происходит при запуске строк темы p2 +, но я не могу определить требуемую настройку.

soe <- read.csv("soe.csv", stringsAsFactors=F)

means <- aggregate(CTR ~ Audience, soe, mean)

p <- ggplot(soe, aes(x = reorder(Audience, CTR), y = CTR,)) +
     geom_jitter(position = position_jitter(height = 0, width = .1), 
              fill = "#0000FF", 
              colour = "#0000FF",
              alpha = .1) + 
    stat_summary(fun.y = mean, 
                 fun.ymin = mean, 
                 fun.ymax = mean, 
                 geom = "crossbar", 
                 width = 0.4,
                 colour = "#84888E") +
    scale_x_discrete(name = "") + 
    coord_cartesian(ylim = c(0, 1.5)) +
    labs(x = "test",
       y = "",
       title = "Click through rate by audience") +
    theme_ipsum_rc()

  #add angles on x & label mean on strip
  p2 <- p + facet_wrap(vars(Country), ncol=2, scales = "free_y")

  p2 + theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  geom_text(data = means, aes(label = round(CTR, 2), y = CTR +0.2), 
  size = 4, family = "Roboto Condensed", fontface = "bold") +
  geom_text(data = means, aes(label = ("%"), x = Audience, hjust = -1.1, y = CTR +0.2), 
  fontface = "bold") 

1 Ответ

0 голосов
/ 17 июня 2020

Вот еще одна идея, трюк состоит в том, чтобы использовать переменные для фасетов в наборе данных, используемом для меток (я думаю).

Пожалуйста, найдите ниже воспроизводимый пример с некоторыми идеями:

library(tidyverse) # packages with ggplot2, dplyr, etc.


df = mtcars %>% group_by(cyl, vs, gear) %>% summarise(meanmpg = mean(mpg))

ggplot(data = mtcars, aes(x = cyl, y = mpg)) +
  facet_wrap(vs~gear) +
  stat_summary(fun.y = mean, 
               fun.ymin = mean, 
               fun.ymax = mean, 
               geom = "crossbar", 
               width = 0.4,
               colour = "#84888E") +
  geom_text(data = df, aes(x = cyl, y = meanmpg, label = meanmpg), vjust = -1.1)

Вывод:

enter image description here

Примечание: mtcars набор данных включен в пакет datasets он должен быть доступен из get go (просто например iris например)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...