【发布时间】:2019-11-21 09:45:44
【问题描述】:
给定以下矩阵
df <- matrix(c(10,8, 20, 6, 20, 25,"exp", "cnt", "exp","cnt","exp","cnt","gene1","gene1","gene2","gene2","gene3","gene3"),
nrow=6, dimnames=list(c("1", "2", "3","4","5","6"),c("Abundance", "Group","gene") ))
我想水平绘制两组“exp”和“cnt”的条形图,由一条垂直线在零处分隔,y 轴显示对应于每个基因的正值,x 轴显示基因名称。 举个例子:
我使用 ggplot 尝试了以下代码,但没有成功。
ggplot(df, aes(x=gene))+
geom_bar(aes(y=Abundance, fill="exp"), stat="identity")+
geom_bar(aes(y=-Abundance, fill="cnt"), stat="identity")+
scale_fill_manual("Group",values=c(exp="red",cnt="green"))+
labs(y="Abundance")+coord_flip()
有什么建议吗?
【问题讨论】:
-
不工作怎么办?这就是为什么要具体化的好处:当我运行你的代码时,我收到一条错误消息,非常清楚地告诉我数据需要是一个数据框。你有别的东西吗?
-
是的..这是真的。除了生成数据框之外,我还遇到了一些问题,即为两组设置正 x 值并显示对应于每个组的正确基因值。