Ярлыки не по порядку (ggplot2)

Когда я добавляю метки к своему графику, они располагаются в неправильном порядке. Я хочу переставить ЭТИКЕТКИ, а не сами полосы. Образец кода:

df = data.frame(A = c("Apples", "Apples", "Apples", "Apples", "Apples", "Apples",
                      "Oranges", "Oranges", "Oranges", "Oranges", "Oranges", "Oranges"),
                B = c("Red", "Green", "Red", "Green", "Red", "Green",
                      "Red", "Green", "Red", "Green", "Red", "Green"),
                C = c(3, 4, 2, 3, 4, 6, 2, 2, 3, 8, 8, 6))

library(tidyverse)

df.summary = df %>%
  group_by(A, B) %>%
  summarise(new = list(mean_se(C))) %>%
  unnest(new)
df.summary$B <- factor(df.summary$B, levels = c("Red", "Green"))

df.labels = c(1, 2, 3, 4)

ggplot(df.summary, aes(x = A, y = y, fill = factor(B))) +
  geom_bar(stat = "identity", position = position_dodge(.95)) +
  geom_errorbar(aes(ymin = ymin, ymax = ymax, width = 0.5), 
                position = position_dodge(.95)) +
  geom_text(position = position_dodge(width = 1), size = 6, 
            label = df.labels, hjust = .5, vjust = 0, angle = 0)

И мы получаем:

Гистограмма с неправильным порядком меток (2-1-4-3 вместо 1-2-3-4):

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

Рефакторинг данных разными способами не меняет метки. Я не могу поставить их в правильном порядке, как бы я ни пытался. Я предполагаю, что это проблема с geom_text, но я ни за что не могу понять это.

В чем дело?


person aaaaaaashton    schedule 24.01.2019    source источник
comment
Я не вижу этих цифр на картинке. В любом случае, вы можете попробовать поместить метки в data.frame? Кроме того, вы должны предоставлять данные таким образом, чтобы не требовалось загружать какие-то неизвестные пакеты.   -  person Roland    schedule 24.01.2019
comment
Извините, загрузил не тот файл. Исправлено сейчас и обновлено, чтобы принять ответ NelsonGon.   -  person aaaaaaashton    schedule 24.01.2019


Ответы (1)


Это помогает? Предполагается (предполагается?), что А и В являются факторами.

 library(tidyverse)
    df.summary$A<-fct_reorder(df.summary$A,df.labels)
    df.summary$B<-fct_reorder(df.summary$B,df.labels)
    ggplot(df.summary, aes(x=A, y=y, fill=B))+
      geom_bar(stat = "identity", position = position_dodge(.95))+
      geom_errorbar(aes(ymin=ymin, ymax=ymax, width=0.5), position=position_dodge(.95))+
      geom_text(position = position_dodge(width = 1), size = 6, aes(label = df.labels),
                hjust = .5, vjust = 0, angle = 0)

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

person NelsonGon    schedule 24.01.2019
comment
Похоже, изменение label = df.labels на aes(label = df.labels) помогло. Спасибо! - person aaaaaaashton; 24.01.2019