Аннотирование текста на отдельном фасете в ggplot2 с использованием geom_text

С помощью следующего кода я получаю текст на каждом аспекте, но текст накладывается: «X1» и «X2» накладываются на каждый аспект. Где проблема в моем коде?

Р-код:

new_df <- data.frame(f = as.factor(rep(1:2, 15)), x = rnorm(30), y = runif(30))
g <- ggplot(data = new_df, aes(x = x, y = y)) + geom_point() 
g <- g + facet_grid(. ~ f)
g
label_graph <- data.frame(label = c("X1", "X2"))

g <- g + geom_text(data = label_graph,
                    mapping = aes(x = Inf, y = -Inf, label = label),
                    hjust = 1.1, vjust = -1.1)
g

person Sebastien    schedule 09.11.2019    source источник
comment
Если один из предоставленных ответов решил вашу проблему, то укажите это, нажав на галочку под кнопками голосования за ответ.   -  person Claus Wilke    schedule 09.11.2019


Ответы (2)


Можно ли пометить заголовки фасетов напрямую, а не нижние углы? Ваш пример предполагает, что это может быть лучшим решением. Если это работает для вашего фактического варианта использования, вы можете просто изменить свой столбец f напрямую, вставив X, и вы получите:

new_df <- data.frame(f = as.factor(paste0("X", rep(1:2, 15))), x = rnorm(30), y = runif(30))
g <- ggplot(data = new_df, aes(x = x, y = y)) + geom_point() 
g <- g + facet_grid(. ~ f)
g

facetlabels

person MSR    schedule 09.11.2019
comment
Большое спасибо. На самом деле, я искал способ различать заголовки фасетов и конкретный текст для каждого заголовка. - person Sebastien; 09.11.2019

вам нужно добавить столбец f в ваш label_graph, таким образом, после применения фасета метки будут на назначенном фасете

new_df <- data.frame(f = as.factor(rep(1:2, 15)), x = rnorm(30), y = runif(30))
g <- ggplot(data = new_df, aes(x = x, y = y)) + geom_point() 
g <- g + facet_grid(. ~ f)
label_graph <- data.frame(label = c("X1", "X2"),f=factor(1:2))

g <- g + geom_text(data = label_graph,
                    mapping = aes(x = Inf, y = -Inf, label = label),
                    hjust = 1.1, vjust = -1.1)
g

введите здесь описание изображения

person StupidWolf    schedule 09.11.2019