我试着做一个堆叠的条形图,但是条形图重叠。
这是我正在使用的代码:
library(ggplot2)
ggplot(data = opstaR, aes(x = Indicator, y = Percentage, fill = factor(tip))) +
geom_bar(position = "dodge", stat = "identity") +
coord_flip() +
scale_fill_grey(labels = c("Case load change", "Compliance change")) +
theme_bw() +
scale_y_continuous(labels = scales::percent, limits = c(-0.15, 0.05),breaks = seq(-0.15, 0.05, 0.05)) +
theme(axis.title.y = element_blank()) +
theme(legend.title = element_blank()) +
theme(legend.position = "bottom")这是输出:

我怎么才能让这些条子不叠在一起呢?
以及如何倒置黑色/灰色的图案?
数据
opstaR <- structure(list(Indicator = structure(c(1L, 2L, 3L, 4L, 5L, 6L,
7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 1L,
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L,
16L, 17L, 18L), .Label = c("HbA1c measurment among diabetic patients",
"LDL-cholesterol measurement among diabetic patients", "Diet advice among diabetic patients",
"Blood preasure measurment among diabetic patients", "Foot examination among diabetic patients",
"Blood preasure among hypertensive patients", "Total cholesterol among hypertensive patients",
"Blood glucose among hypertensive patients", "Lifestyle advice among hypertensive patients",
"ECG among hypertensive patients", "Lifestyle advice among patients with MI",
"Blood preasure measurment among patients with MI", "Total cholesterol among patients with MI",
"LDL-cholesterol measurement among patients with MI", "HDL-cholesterol measurement among patients with MI",
"Triglycerides measurement among patients with MI", "Blood glucose among patients with MI",
"ECG among patients with MI"), class = c("ordered", "factor")),
Percentage = c(-0.119461152, -0.119461152, -0.119461152,
-0.119461152, -0.119461152, -0.125256348, -0.125256348, -0.125256348,
-0.125256348, -0.125256348, -0.139557636, -0.139557636, -0.139557636,
-0.139557636, -0.139557636, -0.139557636, -0.139557636, -0.139557636,
-0.016017788, -0.01085703, 0.030175594, -0.02377841, -0.011164678,
-0.020884472, -0.014592098, -0.013684149, 0.033509796, -0.009671902,
0.037509542, -0.018565706, -0.01177768, -0.007261598, -0.005188794,
-0.008428487, -0.010241197, 0.002690945), tip = c("Change_in_case_load",
"Change_in_case_load", "Change_in_case_load", "Change_in_case_load",
"Change_in_case_load", "Change_in_case_load", "Change_in_case_load",
"Change_in_case_load", "Change_in_case_load", "Change_in_case_load",
"Change_in_case_load", "Change_in_case_load", "Change_in_case_load",
"Change_in_case_load", "Change_in_case_load", "Change_in_case_load",
"Change_in_case_load", "Change_in_case_load", "Change_in_compliance_rate",
"Change_in_case_load", "Change_in_compliance_rate", "Change_in_case_load",
"Change_in_compliance_rate", "Change_in_case_load", "Change_in_compliance_rate",
"Change_in_case_load", "Change_in_compliance_rate", "Change_in_case_load",
"Change_in_compliance_rate", "Change_in_case_load", "Change_in_compliance_rate",
"Change_in_case_load", "Change_in_compliance_rate", "Change_in_case_load",
"Change_in_compliance_rate", "Change_in_case_load")), row.names = c(NA,
-36L), class = "data.frame")发布于 2022-05-04 11:20:40
只要稍微调整一下,就可以删除position = "dodge"。对于颜色,一个选项是自己分配它。
opstaR %>%
ggplot(aes(x = Indicator, y = Percentage, fill = factor(tip))) +
geom_bar(stat = "identity") +
coord_flip() +
scale_fill_manual(labels = c("Case load change", "Compliance change"),values = c("grey","black")) + theme_bw() +
scale_y_continuous(labels = scales::percent, limits = c(-0.15, 0.05),breaks = seq(-0.15, 0.05, 0.05)) +
theme(axis.title.y = element_blank(),
legend.title = element_blank(),
legend.position = "bottom")

https://stackoverflow.com/questions/72109350
复制相似问题