Это то, что вы ищете относительно первой части?(Я советую вам изменить цвета, чтобы предотвратить эпилептические припадки.)
Data %>%
mutate_all(cut, c(0, 2, 4, 6, 7), right = F, ) %>%
gather(key = "variable", value= "value") %>%
ggplot(aes(x = variable, fill = value)) +
geom_bar(position = position_fill(reverse = TRUE)) +
coord_flip() +
scale_fill_manual(values=c("yellow", "orange", "red", "green"))
Для второй части будет полезен воспроизводимый пример, но вы можетевероятно, добавьте переменную «group» (от gather
до ggplot
) и используйте facet_grid
или facet_wrap
.
--- Отредактировано ниже после информации о группах ---
Выбор столбца отсутствует в DataG[Data_IlA$G1_ID == 2]
, а имена переменных не совпадают с именами в DataG
, поэтому DataG_1 не может быть создан.
Делает ли одно из приведенных ниже предложений фигуруВы хотите?
DataG %>%
gather(key = "variable", value = "value", -Group_ID) %>%
mutate(value = cut(value, c(0, 1.99, 3.99, 5.99, 7))) %>%
ggplot(aes(x = variable, fill = value)) +
geom_bar(position = position_fill(reverse = TRUE)) +
scale_y_continuous(labels = scales::percent) +
coord_flip() +
scale_fill_manual(values=c("#19557E","#6E3B60", "#EA916A", "#EFC76C")) +
theme(panel.background = element_blank()) +
xlab("") + ylab("") +
facet_grid(Group_ID ~ .)
DataG %>%
gather(key = "variable", value = "value", -Group_ID) %>%
mutate(value = cut(value, c(0, 1.99, 3.99, 5.99, 7))) %>%
ggplot(aes(x = Group_ID, fill = value)) +
geom_bar(position = position_fill(reverse = TRUE)) +
scale_x_discrete(limits = c("Group 1","Group 2")) +
scale_y_continuous(labels = scales::percent) +
coord_flip() +
scale_fill_manual(values=c("#19557E","#6E3B60", "#EA916A", "#EFC76C")) +
theme(panel.background = element_blank()) +
xlab("") + ylab("") +
facet_grid(variable ~ .)
-- Отредактировано ниже после комментария к группам ---
Если вам нужно изменить категории для любой переменной, самый простой способ может быть сделать это перед вызовом ggplot
:
DataG %>%
mutate(Group_ID = case_when(
Group_ID == 1 ~ "1st group's name",
Group_ID == 2 ~ "2nd group's name"
)) %>%
gather(key = "variable", value = "value", -Group_ID) %>%
mutate(value = cut(value, c(0, 1.99, 3.99, 5.99, 7))) %>%
ggplot(aes(x = variable, fill = value)) +
geom_bar(position = position_fill(reverse = TRUE)) +
scale_y_continuous(labels = scales::percent) +
coord_flip() +
scale_fill_manual(values=c("#19557E","#6E3B60", "#EA916A", "#EFC76C")) +
theme(panel.background = element_blank()) +
xlab("") + ylab("") +
facet_grid(Group_ID ~ .)