繁体   English   中英

geom_bar和多个变量

[英]geom_bar & multiple variables

我无法使绘图正常工作,我有多个类别变量,我想用它们分别上色,而用另一面上色。 但是,R会继续将相同变量的“值”(我使用melt)加在一起。 当我只有一个变量时,它起作用。

这是我的一个变量图 这是我的一个变量图

这是我的图,带有两个变量,您可以看到正在发生的添加 这是我的图,带有两个变量,您可以看到正在发生的添加:

简单数据框

这是我的代码:

library(reshape2)
library(ggplot2)

test2 <- structure(list(SampleID = c(12.19, 12.22, 13.1, 12.19, 12.22, 
13.1, 12.19, 12.22, 13.1, 12.19, 12.22, 13.1), patient = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), type = structure(c(1L, 
1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L), .Label = c("L", 
"T"), class = "factor"), timepoint = structure(c(1L, 2L, 2L, 
1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L), .Label = c("1", "2"), class = "factor"), 
    Group = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L), .Label = "D", class = "factor"), variable = structure(c(1L, 
    1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L), .Label = c("A", 
    "B", "C", "D", "E", "F", "G", "H", "I"), class = "factor"), 
    value = c(2L, 5L, 6L, 25L, 18L, 12L, 6L, 10L, 15L, 21L, 23L, 
    33L)), .Names = c("SampleID", "patient", "type", "timepoint", 
"Group", "variable", "value"), row.names = c(NA, 12L), class = "data.frame")

ggplot(test2, aes(test2$variable, test2$value, fill=test2$timepoint)) +
  geom_bar(stat="identity", position = "dodge") +
  scale_fill_manual(values=c("rosybrown1", "steelblue2", "gray")) +
  labs(x="Category", y="Count", title = paste0("Sample ", as.character(unique(test2$patient)) , " - " , as.character(unique(test2$Group)))) +
  facet_wrap(~test2$type) +
  theme(text = element_text(size=15),
    axis.text.x = element_text(angle = 90, hjust = 1, vjust=.5, size = 7))

如果我理解正确的话,看来您只需要给scalet_wrap提供scales选项,如下所示:

facet_wrap(~type, scales = "free_x")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM