多级分组条形图

时间:2016-08-08 16:18:48

标签: r ggplot2 bar-chart

这是一个带有两个分组条形图的facet_wrap图。我在下面的文字中附上了我的问题和代码。

enter image description here

Q1:如何在指定位置注释三个星号(更好的是它可以在没有我的计算/规格的情况下自动定位)如图中所示?尝试但没有奏效:

ann_text1=data.frame(ligand=c(2), uptake=c(24), kd=factor("p", levels=c("p","q")))
tp=t+geom_text(data=ann_text1,label="***", size=8)

Q2:如何在条带标题中使用希腊字母(测试版)? 试图将表达式参数集成在labels =但是没有用。

t$cell=factor(t$cell, levels = unique(t$cell), labels = c("WT","beta-DKO"))

这是我尝试过的完整代码版本。请通过此link导航输入文件。

library(ggplot2)
library(Hmisc)
library(gridExtra)
library(grid)

t=read.csv(file.choose(), header = TRUE)
t$ligand = factor(t$ligand, levels = unique(t$ligand))
t$kd=factor(t$kd, levels = unique(t$kd))
t$cell=factor(t$cell, levels = unique(t$cell), labels = c("WT","beta-DKO"))

tbar=ggplot(t, aes(kd, uptake, fill=ligand)) +
  stat_summary(fun.y = mean, geom = "bar", position="dodge", color = "black", size=0.3, width = 0.6) +
  stat_summary(fun.data = mean_se, geom = "errorbar", position = position_dodge(width = 0.6), size=0.3, width = .2) +
  scale_fill_manual(name="ligand", labels=c("-L", "+L"), values=c("gray20", "gray80"))+
  theme_bw()+
  scale_y_continuous(expand = c(0,0), limit = c(0, 120), breaks = seq(0, 110, 20))+
  ylab("% of T")+
  facet_wrap(~cell, nrow=1)+
  theme(legend.direction="horizontal",legend.position=c(0.88,0.92))+
  theme(legend.text=element_text(size=9))+
  theme(legend.key.size=unit(0.25,"cm"))

1 个答案:

答案 0 :(得分:0)

您可以根据以下帖子添加stat_summary(geom="text")Annotation above bars:

library(ggplot2)
library(Hmisc)
library(gridExtra)
library(grid)

t=read.csv("https://dl.dropboxusercontent.com/u/1204710/test.csv", header = TRUE)
t$ligand = factor(t$ligand, levels = unique(t$ligand))
t$kd=factor(t$kd, levels = unique(t$kd))
t$cell=factor(t$cell, levels = unique(t$cell), labels = c("WT","beta-DKO"))
## parametrise dodging width; add vertical shift to '***' label
width <- 0.6
vshift <- 5
dodgewidth <- position_dodge(width=width)
## identify bars where '***' label has to be placed using a factor
t$mylabel <- ""
t$mylabel[with(t, ligand=="y" & cell=="WT" & kd=="p")] <- "***"
t$mylabel[with(t, ligand=="y" & cell=="beta-DKO" & kd=="q")] <- "***"
t$mylabel <- factor(t$mylabel)

tbar <- ggplot(t, aes(kd, uptake, fill=ligand)) +
    stat_summary(fun.y = mean, geom = "bar", position="dodge", color = "black", size=0.3, width = width) +
    stat_summary(fun.y = function(v) mean(v)+vshift, geom = "text", position=dodgewidth, aes(label=mylabel)) +
    stat_summary(fun.data = mean_se, geom = "errorbar", position = position_dodge(width = width), size=0.3, width = .2) +
    scale_fill_manual(name="ligand", labels=c("-L", "+L"), values=c("gray20", "gray80"))+
    theme_bw()+
    scale_y_continuous(expand = c(0,0), limit = c(0, 120), breaks = seq(0, 110, 20))+
    ylab("% of T")+
    facet_wrap(~cell, nrow=1)+
    theme(legend.direction="horizontal",legend.position=c(0.88,0.92))+
    theme(legend.text=element_text(size=9))+        
    theme(legend.key.size=unit(0.25,"cm"))

print(tbar)