调整子图并将热图和箱线图组合

时间:2019-06-28 07:47:43

标签: r heatmap boxplot

我的输入文件中有一个1和0的矩阵。作为R的相对菜鸟,我寻求一些帮助,将3个子图绘制为一张包含以下内容的图像:

A。顶部子图=所有行的热图

B。。中间子图= 1行的热图=列总计的向量

C。底部子图=每列的箱形图

示例输入文件位于此link

下面是我创建的示例图像,但是我将这些单独创建的子图与Photoshop缝合在一起。但是,我输入文件太多,无法手动执行此操作。再加上子图的对齐在这里并不完美。我对par(mfrow = c(1,3))的尝试未产生对齐良好的子图(此处未显示)。此外,我还有其他一些如下所述的样式和情节注释问题-因此该帖子在论坛上。提前致谢! Example_composite_manual_stitch


输入步骤

input=read.table("test_Matrix.tab",header=TRUE,sep="\t") 

从此link

input_numerical=data.matrix(input, rownames.force = NA)

所有行的HEATMAP

从此link

我认为这个子图本身可以接受,建议进行任何调整吗?

jpeg(file="Heatmap.jpg",res=300,width=8,height=11,units="in",bg="white")
heatmap(input_numerical,Colv = NA, Rowv = NA, scale="none", col = c("deepskyblue","goldenrod1"),labRow="",main="title")
dev.off()

每个列的箱图

从此link

问题-

我希望最终的X轴刻度标签是任何输入文件的最终列名,所以这里应该是C48,而不是C47

它与热图的属性不对齐(因为默认边距不同?)

jpeg(file="Boxplot.jpg",res=300,width=8,height=3.5,units="in",bg="white")
boxplot(input_numerical, use.cols = TRUE,col=c("red"))
dev.off()

HEATMAP用于列总计的向量

问题-

此图像太高,我想要一个较短的图像-如果我将height = 1.5尝试,我的错误消息是-plot.new()中的错误:图形边距太大。

它与其他两个子图不对齐。

我也不知道如何在此图中隐藏X和Y轴标签,而是像热图一样(或其中一些)用C1-C48标记X轴刻度线。在上面上传的合成图像中,我修剪了原始图,该图更高并且具有令人困惑的X,Y标签。

col_tot = colSums(input_numerical)
max_tot = max(col_tot)
norm_col_tot_matrix=data.matrix(col_tot/max_tot, rownames.force = NA)
colfunc <- colorRampPalette(c("deepskyblue", "goldenrod1"))

link的想法

jpeg(file="ColTotals_HeatMap.jpg",res=100,width=8,height=4,units="in",bg="white")
image(as.matrix(norm_col_tot_matrix),col=colfunc(48))
dev.off()

link的构想

0 个答案:

没有答案