这是您要寻找的关于第一部分的内容吗?
(我建议你改变颜色以防止癫痫发作。)
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"))
对于第二部分,一个可重现的示例会很有用,但您可以添加一个“组”变量(在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 ~ .)