Совместите метки в geom_boxplot - PullRequest
0 голосов
/ 17 марта 2020

У меня возникли некоторые проблемы со следующим фрагментом кода:

ggplot(data = sb11.20194, aes(y = PROMLECTURACRITICA, x = año)) +
  geom_boxplot(fill = "#3AAA35", color = "#3AAA35",outlier.color = "#95C11F",
               outlier.size = 5) + 
  ylab("Puntajes promedio de Lectura Crítica") +
  stat_boxplot(geom = "errorbar", colour = "#006633",
               width = 0.6) +
  stat_summary(geom = "crossbar", width=1.5, fatten=0, 
               color="white", 
               fun.data = function(x){ return(c(y=median(x), 
                                                ymin=median(x), 
                                                ymax=median(x))) }) +
  theme(
    panel.background = element_rect(fill = "white", colour = rgb(198,
                                                                 198,
                                                                 198, 
                                                                 maxColorValue = 255),
                                    size = 1, linetype = "solid"),    

    panel.grid.minor = element_line(size = 0.1, linetype = 'dashed',
                                    colour = rgb(198,198,198,
                                                 maxColorValue = 255)),
    axis.ticks.x = element_blank(),
    axis.text.x = element_blank(),
    axis.title.x = element_blank(),
    axis.text.y = element_text(family = "Montserrat"),
    axis.title.y = element_text(family = "Montserrat")
  ) + geom_text(data = num, aes(label = num, y = num),
                color = "#575756", hjust = -8,
                family = "Montserrat")

, который дает следующий график: enter image description here

Я хотел бы выровнять метки. Кто-нибудь знает, как я могу это сделать?

1 Ответ

0 голосов
/ 17 марта 2020

Вы не предоставили примерный набор данных, поэтому я сделал его самостоятельно. Вы можете использовать два аргумента в geom_text: nudge_x и hjust. Вы можете использовать nudge_x так же, как вы используете hjust в своем коде. Затем мы можем использовать hjust для выравнивания надписей.

library(tidyverse)
set.seed(123)
# generate sample data and calculate quantiles
dat <- tibble(x = rnorm(1000))
dat_summary <- tibble(quants = quantile(dat$x))

ggplot(dat, aes(x = 1, y = x))+
    geom_boxplot() +
    geom_text(data = dat_summary, aes(x = 1.5, y = quants, 
                                      label = round(quants, 2)),
              hjust = 'outward', nudge_x = 0.1)

enter image description here

...