在ggplot中安排子组

Arranging subgroups in ggplot

我有这组数据

data<-read.table("http://pastebin.com/raw.php?i=Vb8S91LX", header=TRUE)

当我使用 ggplot 绘制它们时,X 轴子组自动排列为每个 x 变量的 GSi_GSNor

我使用的代码是

ggplot(data, aes(x=gene, y=value,fill=as.factor(group))) + 
   geom_bar(stat='identity', position='dodge') +
   geom_errorbar(aes(ymin=value, ymax=value+std),position=position_dodge(0.9), width=.2) +
   scale_fill_grey() +
   theme_bw() + 
   xlab("gene symbol")+
   ylab("value") + 
   theme(text = element_text(size=20, face="bold"),
   axis.text.x = element_text(vjust=2))

我的问题: 我怎样才能反转它们 "i mean the subgroup not the X axis" 以便我可以将它们作为 Nori_GSGS

数据

data <- structure(list(gene = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L), .Label = c("C3", "C4A", "C4B", 
"C5", "C6", "C7", "C8A", "C8B", "C8G", "C9"), class = "factor"), 
    group = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L), .Label = c("GS", "i_GS", "Nor"), class = "factor"), 
    value = c(149L, 43L, 19L, 0L, 0L, 0L, 0L, 0L, 0L, 15L, 192L, 
    68L, 67L, 51L, 14L, 13L, 0L, 9L, 7L, 41L, 407L, 70L, 71L, 
    170L, 45L, 47L, 19L, 43L, 24L, 125L), std = c(26L, 17L, 33L, 
    0L, 0L, 0L, 0L, 0L, 0L, 1L, 51L, 3L, 5L, 45L, 12L, 11L, 0L, 
    8L, 6L, 29L, 73L, 6L, 6L, 84L, 16L, 30L, 17L, 30L, 10L, 2L
    )), .Names = c("gene", "group", "value", "std"), class = "data.frame", row.names = c(NA, 
-30L))

在 ggplot() 之前添加:

data$group <- factor(data$group, levels = c("Nor", "i_GS", "GS"))

我的想法是 ggplot 从因子中读取它们在数据框中的排列方式。因此,如果您想以不同的方式查看它们,则必须重新排列数据框中的因素。