Метки вышли из строя (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
но я не могу на всю жизнь понять это.
В чем дело?
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)