我的输入文件中有一个1和0的矩阵。作为R的相对菜鸟,我寻求一些帮助,将3个子图绘制为一张包含以下内容的图像:
A。顶部子图=所有行的热图
B。。中间子图= 1行的热图=列总计的向量
C。底部子图=每列的箱形图
示例输入文件位于此link
下面是我创建的示例图像,但是我将这些单独创建的子图与Photoshop缝合在一起。但是,我输入文件太多,无法手动执行此操作。再加上子图的对齐在这里并不完美。我对par(mfrow = c(1,3))的尝试未产生对齐良好的子图(此处未显示)。此外,我还有其他一些如下所述的样式和情节注释问题-因此该帖子在论坛上。提前致谢!
input=read.table("test_Matrix.tab",header=TRUE,sep="\t")
从此link
input_numerical=data.matrix(input, rownames.force = NA)
从此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()
问题-
此图像太高,我想要一个较短的图像-如果我将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的构想