Я делаю несколько гистограмм, используя ggplot2
и facet_wrap
, и хотел бы вывести среднее значение на каждой панели.Ниже я создаю фиктивный фрейм данных, нахожу среднее значение для каждого фасета, а затем создаю графики, добавляя среднее значение, используя geom_point
.
# Load libraries
library(tidyverse)
# Toy data frame
df <- data.frame(ID = sample(letters[1:3], 100, replace = TRUE), n = runif(100))
# Mean value of each group
df_mean <- df %>% group_by(ID) %>% summarise(mean = mean(n))
# Plot histograms
ggplot(df) +
geom_histogram(aes(n)) +
facet_wrap(~ID) +
geom_point(data = df_mean, aes(x = mean, y = Inf))
Я использовал y = Inf
, чтобы поместить точку вверху каждой грани, но - как вы можете видеть - она несколько обрезана.Я хотел бы подтолкнуть его вниз, чтобы он был полностью виден.Насколько мне известно, geom_point
не имеет аргумента nudge_y
или vadj
, а 0.7 * Inf
явно бессмысленен.Я также попытался добавить position = position_nudge(y = -5)
в качестве аргумента к geom_point
, но это, похоже, не имеет никакого эффекта.В качестве обходного пути я даже попытался использовать geom_text
и указать nudge_y
, но - как и решение position_nudge
- он не оказал заметного эффекта.Есть ли простой способ сделать это во время черчения или мне просто нужно вычислить значение y
перед построением?