如何在ggplot2 barplot中对条形进行分组

时间:2019-02-25 19:49:44

标签: r ggplot2 bar-chart

我正在尝试创建一个成对的条形图,每对都比较preop和postop得分。比较中的3个来自使用过程A(SDR),其他3个来自使用过程B(ITB)。我正在寻找一种使用其他变量(过程)对这些条进行分类的方法。

这是我的代码:

newMAS <- read.csv(header=TRUE, "allMASpaired.csv")
#Prevent Time from getting alphabeticalized
newMAS$Paper <- factor(newMAS$Paper, 
levels=unique(as.character(newMAS$Paper)) )
newMAS$Time <- factor(newMAS$Time, levels=unique(as.character(newMAS$Time)) )

library(ggplot2)

pdf(file="allMASplotPAIRED.pdf")

ggplot(data=newMAS, aes(x=Paper, y=MAS, fill=Time)) +
  geom_bar(stat="identity", position=position_dodge(), color="black") +
  geom_text(aes(label=n), vjust=-1) +
  scale_fill_brewer(palette="Set1") + theme_classic()

enter image description here

1 个答案:

答案 0 :(得分:0)

感谢您的数据链接。 我添加了一个名为surg.type的列。猜猜哪些文件在哪里,特别提款权在哪 哪里有ITB。相应地更改。

library(dplyr)
#some data munging
allMAS %>% # adding a surg.type
  mutate(surg.type = case_when(
         (Paper %in% c("Ailon","D'Aquino","Ingale")) ~ "SDR",
         TRUE ~ "ITB")) ->allMAS

然后将其绘制出来,我在surg.type上进行了facet_wrap,这将一种类型的纸张分组在一个面板中,并且也进行了scales =“ free_x”的操作,因此不再重复x标签。尝试不使用它,看看会发生什么

ggplot(allMAS, aes(y=mas,x=paper)) +
  geom_bar(aes(fill=time),stat="identity", position=position_dodge()) +
    scale_fill_brewer(palette="Set1") +facet_wrap(~surg.type, scales = "free_x")