Выравнивание текста на горизонтальной гистограмме

Я столкнулся с несколькими темами, указывающими, как аннотировать гистограммы, но я пробовал несколько итераций этого кода и, похоже, не могу получить текст , выровненный по левому краю, начиная с 0% по оси X. . Я пытался изменить hтолько на левое, 0,95 и постепенно увеличивать числа - ни одно из них не имеет текста, привязанного к исходной точке x.

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

dummy_data <- tibble(Proportion = c(0.87, 1),
       `Person of Interest` = c("Person B", "Person A"))

dummy_data %>%
  ggplot(aes(x = Proportion, y = `Person of Interest`, 
             fill = `Person of Interest`,
             label = paste0(`Person of Interest`, "~", scales::percent(Proportion))))+
  geom_col(width = 0.5) + 
  geom_text(position = position_dodge(width = .9),    # move to center of bars
            vjust = 0,    # nudge above top of bar
            hjust = "top",
            size = 4.5,
            colour = "white",
            fontface = "bold") +
  scale_x_continuous(labels = scales::percent, 
                     limits = c(0, 1.01), 
                     expand = c(0, 0)) +
  ggthemes::theme_economist(horizontal = F) + 
  scale_fill_manual(values = alpha(c("black", "#002D62"), .5)) +
  ggtitle("Lack of Skill") + 
  theme(title = element_text("Lack of Skill"),
        plot.title = element_text(hjust = 0.5, face = "italic"),
        axis.title.y = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.y = element_blank(),
        axis.title.x = element_blank(),
        axis.text.x = element_text(hjust = 0.25),
        legend.position="none",
        aspect.ratio = 1/3)

Я часто находил текстовые данные с ggplot сводящими с ума — огромное спасибо всем, кто захочет взглянуть.


person BSHuniversity    schedule 02.10.2020    source источник
comment
Как насчет geom_text(aes(x = 0), hjust = 0,...?   -  person Zhiqiang Wang    schedule 02.10.2020


Ответы (1)


Попробуйте этот подход, который близок к тому, что вы хотите. Ваши темы могут создавать проблемы с размещением меток:

#Code
dummy_data %>%
  ggplot(aes(x=`Person of Interest`,
             y=Proportion,
             fill=`Person of Interest`,
             label = paste0(`Person of Interest`, "~", scales::percent(Proportion))))+
  geom_bar(stat = 'identity')+
  geom_text(aes(y=0.13),
            size = 4.5,
            colour = "white",
            fontface = "bold")+coord_flip()+
  scale_y_continuous(labels = scales::percent, 
                     limits = c(0, 1.01), 
                     expand = c(0, 0)) +
  ggthemes::theme_economist(horizontal = F) + 
  scale_fill_manual(values = alpha(c("black", "#002D62"), .5)) +
  ggtitle("Lack of Skill") + 
  theme(title = element_text("Lack of Skill"),
        plot.title = element_text(hjust = 0.5, face = "italic"),
        axis.title.y = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.y = element_blank(),
        axis.title.x = element_blank(),
        axis.text.x = element_text(hjust = 0.25),
        legend.position="none",
        aspect.ratio = 1/3)

Выход:

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

person Duck    schedule 02.10.2020