Почему порядок заполнения меняется на отрицательные значения в гистограммах с накоплением? (R, ggplot2) - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь составить график работы отдельных лиц по ряду задач. Эффективность оценивается по категориям, и я хотел бы показать общую эффективность каждого человека в виде столбчатой ​​диаграммы, где Y представляет процент ответов в каждой категории производительности, с положительными значениями для хороших и отрицательными значениями для плохих результатов или пропущенных ответов. Вот набор данных игрушек и текущий график, который мне удалось создать:

df <- data.frame(SRC = rep(LETTERS[1:14],each=6),
                 CAT = rep(c("Excellent","VeryGood","Good","Poor","Failing","Missing"),times=14),
                 PERCENT = c(29.3, 23.3, 30, -13.3, -4, 0, 16.7, 15.3, 38.7, -14.7, -4.7, 
                             -10, 12, 9.3, 30.7, -19.3, -19.3, -9.3, 2.7, 6.7, 20, -23.3, 
                             -14, -33.3, 16, 23.3, 20.7, -10.7, -9.3, -20, 24.7, 22, 12.7, 
                             -8, -2, -30.7, 14, 15.3, 23.3, -4, -4.7, -38.7, 4.7, 6, 60, -24, 
                             -4.7, -0.7, 8, 13.3, 57.3, -16, -3.3, -2, 8, 11.3, 62, -12.7, 
                             -5.3, -0.7, 9.3, 14.7, 64.7, -10, -1.3, 0, 20.1, 20.9, 32.5, 
                             -1.5, 0, 0, 14.2, 10.4, 33.2, -6.6, -2.8, 0, 14.7, 18.7, 55.3, 
                             -10.7, 0, -0.7))

df$CAT <- ordered(df$CAT,levels=c("Excellent","VeryGood","Good","Poor","Failing","Missing"))

ggplot(df, aes(x=SRC, y=PERCENT, fill=CAT,group=CAT,group=SRC)) + 
  geom_bar(position="stack", stat="identity")

Это рисунок:

enter image description here

Это почти то, что я хочу, за исключением того, что CAT упорядочен в обратном порядке для отрицательных значений и Я хочу, чтобы столбцы складывались в соответствии с уровнями факторов и легендами заполнения для отрицательных значений , то есть Poor> Failing> Missing. Это, конечно, возникло раньше, но я не мог найти решение здесь или в другом месте. Заранее спасибо!

1 Ответ

1 голос
/ 30 марта 2020

enter image description here с использованием библиотеки forecats:

library(forecats)



df %>% 
mutate(CAT=fct_relevel(CAT,"Excellent","VeryGood","Good","Missing","Failing","Poor")) %>% 
ggplot( aes(x=SRC, y=PERCENT, fill=CAT)) + 
  geom_bar(position="stack", stat="identity")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...