我的问题类似于link。在这个例子中,1表示突变,0表示野生型,NA表示不可用。我的数据帧设置相同,但每个基因可能包含两种或更多种类型的突变。我想生成一个类似的数字,除非基因有两种类型的突变,我希望将方形切成两半,并且两种类型的突变都要着色,类似于this例子。目前,如果受试者中的基因具有两个突变,则第二个突变填充将写入第一个突变。提前感谢您抽出时间提供帮助。
dat <- expand.grid(gene=1:10, subj=1:50)
dat$mut <- as.factor(sample(c(rep(0,300),rep(1,200)),500))
dat$mut[sample(500,300)] <- NA
dat[501,] = c(10,50,1) #included from comment below
ggplot(dat, aes(x=subj, y=gene, fill=mut)) +
geom_raster() +
scale_fill_manual(values = c("#8D1E0B","#323D8D"), na.value="#FFFFFF") +
scale_x_discrete("Subject") +
scale_y_continuous(breaks=1:10,
labels=c("D0","D1","D2","D3","D4","D5","D6","D7","D8","D9")) +
guides(fill=FALSE) +
theme(
axis.ticks.x=element_blank(), axis.ticks.y=element_blank(),
axis.text.x=element_blank(), axis.text.y=element_text(colour="#000000"),
axis.title.x=element_text(face="bold"), axis.title.y=element_blank(),
panel.grid.major.x=element_blank(), panel.grid.major.y=element_blank(),
panel.grid.minor.x=element_blank(), panel.grid.minor.y=element_blank(),
panel.background=element_rect(fill="#ffffff")
)
答案 0 :(得分:2)
我看不出您的数据是否有任何主题和基因的多个条目?没有任何东西被覆盖,因为没有什么可以覆盖。
我添加了最后一行的重复,但将mut更改为1以显示。我也从光栅更改为平铺,并更改了不透明度,因此具有多个值的平铺将具有不同的颜色。
如果你想要链接到的情节之类的东西,你需要创建移位和高度向量,就像那个帖子所示,所以每个图块再次被分段。
dat[501,] = c(10,50,1)
ggplot(dat, aes(x=subj, y=gene)) +
geom_tile(alpha=.5,aes(fill=mut), show.legend = F) +
scale_fill_manual(values = c("#8D1E0B","#323D8D"), na.value="transparent") +
scale_x_discrete("Subject") +
scale_y_continuous(breaks=1:10,
labels=c("D0","D1","D2","D3","D4","D5","D6","D7","D8","D9")) +
theme(
axis.ticks.x=element_blank(), axis.ticks.y=element_blank(),
axis.text.x=element_blank(), axis.text.y=element_text(colour="#000000"),
axis.title.x=element_text(face="bold"), axis.title.y=element_blank(),
panel.grid.major.x=element_blank(), panel.grid.major.y=element_blank(),
panel.grid.minor.x=element_blank(), panel.grid.minor.y=element_blank(),
panel.background=element_rect(fill="#ffffff")
)