【发布时间】:2019-09-05 12:01:01
【问题描述】:
我正在使用 heatmap.2 创建绘图,但是,保存到我的源文件夹的初始绘图缺少键和标题。
然后当我运行dev.off() 命令时,然后使用 Key 和 Title 覆盖原始图形?
例如,我将制作这样的情节:
这远非完美。但是当我运行dev.off() 关闭设备时(否则会出现许多其他错误):
您在上面看到的是一个非常扭曲的 Key 和我的“XYZ”标题。
到底为什么它要创建两个文件,首先是一个带有我的矩阵的文件,然后用包含我的翻转键和我的标题的第二个文件覆盖它?我无法遵循逻辑。
我已经更新了我的操作系统、我的 R 版本、RStudio、我的所有软件包和未安装的 RStudio。似乎没有任何帮助。
如果您想尝试复制我的错误,这里是示例矩阵:
structure(c(1, 4, 5, 3, 3, 4, 6, 1, 7, 5, 5, 4, 4, 8, 1, 3, 9,
2, 2, 9, 3, 1, 3, 4, 4, 5, 5, 5, 1, 4, 4, 3, 3, 3, 9, 1), .Dim = c(6L,
6L))
这是我用来绘制示例数据的脚本。您需要提供 SourceDir 并确保将矩阵分配给名称“Matrix”。
if (!require("gplots")) {
install.packages("gplots", dependencies = TRUE)
library(gplots)
}
if (!require("RColorBrewer")) {
install.packages("RColorBrewer", dependencies = TRUE)
library(RColorBrewer)
}
my_palette <- colorRampPalette(c("snow", "yellow", "darkorange", "red"))(n = 399)
transition
col_breaks = c(seq(0,1,length=100), #white 'snow'
seq(2,4,length=100), # for yellow
seq(5,7,length=100), # for orange 'darkorange'
seq(8,9,length=100)) # for red
png(paste(SourceDir, "Heatmap_Test.png"),
width = 5*1000,
height = 5*1000,
res = 300,
pointsize =15)
heatmap.2(Matrix,
main = paste("XYZ"),
notecol="black",
key = "true" ,
colsep = c(3, 6, 9),
rowsep = c(3, 6, 9),
labCol = NULL,
labRow = NULL,
sepcolor="white",
sepwidth=c(0.08,0.08),
density.info="none",
trace="none",
margins=c(1,1),
col=my_palette,
breaks=col_breaks,
dendrogram="none",
RowSideColors = c(rep("blue", 3), rep("orange", 3)),
ColSideColors = c(rep("blue", 3), rep("orange", 3)),
srtCol = 0 ,
asp = 1 ,
adjCol = c(NA, 0) ,
adjRow = c(0, NA) ,
#keysize = 2 ,
Colv = FALSE ,
Rowv = FALSE ,
key.xlab = paste("Correlation") ,
cexRow = (1.8) ,
cexCol = (1.8) ,
notecex = (1.5) ,
lmat = rbind(c(0,0,0,0), c(0,0,2,0),c(0,1,3,0),c(0,0,0,0)) ,
#par(ColSideColors = c(2,2)),
lhei = c(1, 1, 3, 1) ,
lwid = c(1, 1, 3, 1))
dev.off()
我非常感谢您对此问题的任何见解。
【问题讨论】:
标签: r matrix plot device heatmap